![](/img/trans.png)
[英]How I can deserialize Json into Dictionary<String,List<String>>
[英]How can I deserialize a json string List<Dictionary<string,int>> using JQuery?
在此先感谢您的帮助。
我在执行以下操作的代码中返回了List<Dictionary<string,int>>
的json序列化字符串,但是我正在努力使用JQuery将数据转换为视图中的可用格式。 我希望能够遍历每本字典。
我在使用有效的List之前已经完成了此操作,所以我可以假设创建一个新模型,但是我确信我应该能够对此进行反序列化。
如果有人可以建议一种反序列化此数据的方法,或者首先是一种更好的发送数据的方法,我将不胜感激。
MenuController:
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);
cshtml jquery:
<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 is: 0
o is: 1
完成
done: [{"foo":2,"bar":0,"ray":3,"doh":1},{"mee":1,"so":0,"lah":2,"far":0}]
非常感谢您的帮助。
因此,列表被转换为数组,字典被转换为对象,因此看起来一切正常。 在Javascript中,您已获得一个包含两个对象的数组。 您可以如下迭代每个对象(即翻译后的字典):
var data;// your downloaded JSON object
for(var i = 0;i < data.length; ++i) //for enumerating array
{
var obj = data[i];
for(var propName in obj) //for enumerating the properties of an object
{
var value = obj[propName];
alert("item : " + i + " : prop : " + propName + " : value : " + value);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.