ご協力いただきありがとうございます。
のjsonシリアル化された文字列を返すアクションに次のコードがありますが、List<Dictionary<string,int>>
JQueryを使用してビューでデータを使用可能な形式にするのに苦労しています。各辞書を反復できるようにしたい。
リストを使用する前にこれを行ったので、新しいモデルを作成できると思いますが、これを逆シリアル化できるはずです。
誰かがこのデータを逆シリアル化する方法、または最初にデータを送信するより良い方法を提案できれば幸いです。
メニューコントローラー:
public JsonResult Populate(string id) {
// Get and process data, creating all, a List<Dictionary<string,int>>
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize((object)all);
return Json(json, JsonRequestBehavior.AllowGet);
}
JavascriptSerielizer を使用する代わりに次のことも試しましたが、同じ結果が得られました。
return Json(JsonConvert.SerializeObject(all), JsonRequestBehavior.AllowGet);
cshtmljquery:
<script type="text/javascript">
$.get('@Url.Action("Populate","Menu")', { id: "MO" }, function (data) {
console.log(data);
var obj = jQuery.parseJSON(data);
console.log('obj: ' + obj);
for (var o in obj) {
console.log('o is: ' + o);
}
})
.done(function (d) {
console.log('done: ' + d);
})
.fail(function (d) {
console.log('fail: ' + d);
});
</script>
コンソールで私は得る:
データ
[{"foo":2,"bar":0,"ray":3,"doh":1},{"mee":1,"so":0,"lah":2,"far":0}]
オブジェクト
obj: [object Object],[object Object]
o
o is: 0
o is: 1
終わり
done: [{"foo":2,"bar":0,"ray":3,"doh":1},{"mee":1,"so":0,"lah":2,"far":0}]
助けてくれて本当にありがとうございます。