我正在使用C#.NET 4.0將JSON解析爲自定義對象。我正在使用JavaScriptSerializer.Deserialize將其映射到我編寫的類。問題是,在JSON的名稱/值對是不是靜態的,取決於參數isChain,如在此JSON片段(在底部更好的鏈路):將具有變量名/值對的JSON反序列化爲C中的對象#
{
"STATE_WALK_LEFT":{
"isChain":"1",
"x":"1"
},
"STATE_WALK_LEFT_0":{
"x":"0"
},
"STATE_WALK_LEFT_1":{
"x":"40"
},
"STATE_WALK_LEFT_2":{
"x":"80"
},
"STATE_WALK_RIGHT":{
"isChain":"0"
},
"STATE_RUN_LEFT":{
"isChain":"0"
}
}
鏈可以在任何地方從_STATE_0到_STATE_25項在鏈子裏。是否有某種方式來存儲這些數據,所以我沒有寫12個* 26空類,像這樣:
public StateWalkLeft0 STATE_WALK_LEFT { get; set; }
public StateWalkLeft0 STATE_WALK_LEFT_0 { get; set; }
public StateWalkLeft1 STATE_WALK_LEFT_1 { get; set; }
public StateWalkLeft2 STATE_WALK_LEFT_2 { get; set; }
public StateWalkLeft3 STATE_WALK_LEFT_3 { get; set; }
是否有一個圖書館或一些其他的方式,我可以用它來解析部分僅的 STATE_0 ,STATE_1等字段?你可能會建議一種方法來添加這些最近添加的JSON對嗎?
編輯,以澄清: 得到什麼我的工作的想法,這裏是從JSONs派生的類:
Check out my full Class to get an idea of what the JSONs contain
基本上,我只需要一種方法來存儲這些最近在這個類中以某種方式實現了鏈處理。所有這些類/屬性都是從這些JSON生成的。
「我寧願不使用遞歸,第三方庫或反序列化到var/dynamic。」祝你好運找到在這些邊界內的解決方案 –
你可以用[Json.NET](http://json.codeplex.com/) – casperOne
@casperOne +1輕鬆地做到這一點,但我會提出建議使用[fastJSON](http://www.codeproject.com/Articles/159450/fastJSON)。 Json.NET非常慢且很大,並且由於其複雜性而難以進行修改。 – erodewald