2013-08-25 103 views
2

我需要以下輸出JSON序列發揮功能/對象名

{你好= 「世界」,測試= aobjectname}

我試圖做在C#enum{aobjectname}[JsonConverter(typeof(StringEnumConverter))]

任何人有一個好主意我怎麼可能得到想要的輸出。我嘗試的東西給出了測試= 1或測試=「aobjectname」。

回答

2

這將不是有效的JSON。 JSON 中的字符串值將用引號引起來。所以test:"aobjectname"是正確的輸出,世界上沒有任何JSON序列化器會給你沒有這些引號的任何輸出。

JSON是一種語言。語言有規範。而JSON language specification狀態,即一個JSON對象遵循這種結構:

Object structure

該法還規定,一個字符串值如下這種結構:

String structure

如果違反這些原則,那麼你不再有JSON,但你自己製作的東西,這是基於JSON的。在極少數情況下,這可以很好。但是你需要知道你正在做出的犧牲:這是你自己設計的語言,所以你需要提供圍繞該語言的所有工具,包括但不限於:串行器和反串行器,MIME類型,驗證器,等

總之,你的目標應該是這樣的:

{hello: "world", test: "aobjectname"} 

{hello: "world", test: 1} 

順便說一句,如果你需要"aobjectname"轉換回枚舉值,你可以做這通過使用Enum.Parse方法。