如何使用 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 将字符串反序列化为嵌套类。
通知EQUIPMENT
包含多个值。当它以前只是一个 "string:string" likeNOTES
时,这个 JSON 反序列data
化为 a 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
}
我希望无论是(like )还是字典(like )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
}