如何遍历以下json列表?

时间:2015-05-26 05:40:59

标签: javascript jquery json list for-loop

我正在编写一个检索列表的jQuery ajax函数,我需要遍历此list

这是我用来序列化列表的代码:

JavaScriptSerializer().Serialize(listData);

以下是检索数据后的json数据:

jsonData = "[{\"draggable\":false,\"icon\":null,\"latitude\":-41.22766,\"longitude\":174.812761,\"title\":\"LocationMarker1 74 Title\"},{\"draggable\":false,\"icon\":null,\"latitude\":-41.228029,\"longitude\":174.812926,\"title\":\"LocationMarker2 80 Title\"}]"

如何遍历此json列表以便我可以检索单个值?

我尝试了以下内容:

success: function (mapMarkerData) {
    for (var MapMarker in mapMarkerData) {
        alert(MapMarker["latitude"]);
        alert(MapMarker["longitude"]);
        alert(MapMarker["title"]);
        alert(MapMarker["draggable"]);
    }
}

对于每个提醒,我收到以下消息:

  

未定义

提前致谢

6 个答案:

答案 0 :(得分:1)

var jsonData = "[{\"draggable\":false,\"icon\":null,\"latitude\":-41.22766,\"longitude\":174.812761,\"title\":\"LocationMarker1 74 Title\"},{\"draggable\":false,\"icon\":null,\"latitude\":-41.228029,\"longitude\":174.812926,\"title\":\"LocationMarker2 80 Title\"}]"


jsonData = JSON.parse(jsonData) //Parse it to make object

jsonData.forEach(function(val){
    alert(val.draggable);
    .
    .
    .
    alert(val.title);
})

答案 1 :(得分:0)

这是一个可能的解决方案。



var jsonData = "[{\"draggable\":false,\"icon\":null,\"latitude\":-41.22766,\"longitude\":174.812761,\"title\":\"LocationMarker1 74 Title\"},{\"draggable\":false,\"icon\":null,\"latitude\":-41.228029,\"longitude\":174.812926,\"title\":\"LocationMarker2 80 Title\"}]";

var obj = JSON.parse(jsonData);

$.each(obj, function(i, row){
  alert(row.draggable);
  });

<script src="https://cdnjs.cloudflare.com/ajax/libs/json2/20140204/json2.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

var x = $.parseJSON(jsonData);
for(var o in x){
   console.log(x[o].latitude);
   console.log(x[o].longitude);
}

答案 3 :(得分:0)

解决方案就像

var data = Json.Parse(jsonData); for (int i=0; i< data.length; i++){ alert(data[i]["latitude"]); }

答案 4 :(得分:0)

success: function (mapMarkerData) {
    for (i in mapMarkerData) {
        alert(mapMarkerData[i].latitude);
        alert(mapMarkerData[i].longitude);
        alert(mapMarkerData[i].title);
        alert(mapMarkerData[i].draggable);
    }
}

答案 5 :(得分:0)

您可以使用此代码:

var jsonData = "[{\"draggable\":false,\"icon\":null,\"latitude\":-41.22766,\"longitude\":174.812761,\"title\":\"LocationMarker1 74 Title\"},{\"draggable\":false,\"icon\":null,\"latitude\":-41.228029,\"longitude\":174.812926,\"title\":\"LocationMarker2 80 Title\"}]";

var jsonObj = JSON.parse(jsonData);
for(var index in jsonObj)
   alert(jsonObj[index].title);