如何反序列化JSON以下使用Web API(JSON.Net)?:如何反序列化這個JSON?
{
"action": "edit",
"table": "MainView",
"id": "row_1377",
"_group_id": "999",
"data": {
"ROTATION": "1", // This name/val can change
"EQUIPMENT": [{
"id": "6"
},
{
"id": "8"
}],
"NOTES": ""
}
}
值在data
代表列可以改變的,所以我不能讓一個集多功能於石對象例如一個名爲「NOTES」的字符串,如json.net deserialize string to nested class。
通知EQUIPMENT
包含多個值。當它以前只是一個像「NOTES
」這樣的「字符串:字符串」時,這個JSON將data
反序列化爲Dictionary<string, string>
,但現在我需要它像自己的字典一樣工作。我最後的嘗試是反序列化到以下類型:
public class EditorSubmissionJoined
{
public string _group_id { get; set; }
public string action { get; set; }
public string table { get; set; }
public string id { get; set; }
// "public" added below due to mistake noticed by Maggie Ying
public Dictionary<string, object> data { get; set; } // Trouble
}
我希望在object
可以在data
包含任何內容是否KeyValuePair
(如NOTES
)或字典(如EQUIPMENT
)。
我也試過Dictionary<string, ICollection<Object>>
,Object
,甚至ICollection<Dictionary<string, Object>>
。
的問題是,我的控制器總是得到什麼也沒有,但空值EditorSubmissionJoined:
public void Put(EditorSubmissionJoined ajaxSubmission) {
// ajaxSubmission has only NULL values
}
你應該能夠反序列化爲動態:http://stackoverflow.com/questions/4535840/deserialize-json-object-into-dynamic-object-using-json-net –