我已经阅读了几个如何做我想做的例子,但似乎都没有。我想迭代一个JSON数组,但它不适合我。当我查看chromes js console时,我的数据看起来像这样:
"[\r\n {\r\n \"EntryId\": 3,\r\n \"Title\": \"Tiny Living For sales\",\r\n \"Description\": \"This is a house for sale\",\r\n \"AddressViewModel\": {\r\n \"AddressId\": 3,\r\n \"Street1\": null,\r\n \"Street2\": null,\r\n \"City\": \"Los Angeles\",\r\n \"LocationId\": 5,\r\n \"LocationName\": \"California\",\r\n \"PostalCode\": null,\r\n \"Phone\": null,\r\n \"Latitude\": 34.052234,\r\n \"Longitude\": -118.243685\r\n },\r\n \"EntryCategoryName\": \"Houses for Sale\",\r\n \"EventStartDate\": null,\r\n \"EventEndDate\": null\r\n },\r\n {\r\n \"EntryId\": 2,\r\n \"Title\": \"Tiny Living Workshop\",\r\n \"Description\": \"This is a workshop\",\r\n ...
如果我通过这样做把它变成一个对象:
var myObject = eval('(' + locations + ')');
看起来像这样(格式化):
[
{
"EntryId": 3,
"Title": "Tiny Living For sales",
"Description": "This is a house for sale",
"AddressViewModel": {
"AddressId": 3,
"Street1": null,
"Street2": null,
"City": "Los Angeles",
"LocationId": 5,
"LocationName": "California",
"PostalCode": null,
"Phone": null,
"Latitude": 34.052234,
"Longitude": -118.243685
},
"EntryCategoryName": "Houses for Sale",
"EventStartDate": null,
"EventEndDate": null
},
{
"EntryId": 2,
"Title": "Tiny Living Workshop",
...
但是当我尝试迭代它(原始JSON或对象)时,它给了我JSON的每个字母,而不是数组中的每个对象
for (var i = 0; i < myObject.length; i++) { console.log(myObject[i]); }
像这样:
"
[
\
r
\
由于
答案 0 :(得分:4)
您评估JSON并将结果分配给“myObject”,然后尝试迭代“位置”。毫无疑问,这不起作用: - )
答案 1 :(得分:1)
我明白了。我正在从我的控制器返回JSON,就像这样
return Json( jsonResults, "text/html");
我必须在不同的控制器上执行此操作,以防止IE提示用户保存JSON结果。 无论如何,这是在数据周围加上引号,因此它没有被正确解析。
所以我现在回来了:
return Json( jsonResults);
希望我没有IE问题(在9中测试但没有看到它)