次のJSONをWebAPI(JSON.Net)で逆シリアル化するにはどうすればよいですか?:
{
"action": "edit",
"table": "MainView",
"id": "row_1377",
"_group_id": "999",
"data": {
"ROTATION": "1", // This name/val can change
"EQUIPMENT": [{
"id": "6"
},
{
"id": "8"
}],
"NOTES": ""
}
}
の値は列を表し、変更される可能性があるため、 json.netdata
のように「NOTES」という名前の文字列を使用してset-in-stoneオブジェクトを作成することはできません。文字列は、ネストされたクラスに逆シリアル化されます。
通知EQUIPMENT
には複数の値が含まれています。以前はのような「string:string」でしたが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>>
た。
問題は、私のコントローラーが常にnull値のみでEditorSubmissionJoinedを取得することです。
public void Put(EditorSubmissionJoined ajaxSubmission) {
// ajaxSubmission has only NULL values
}