【问题标题】:How do I loop through the following json list?如何遍历以下 json 列表?
【发布时间】:2015-08-07 15:21:17
【问题描述】:

我正在编写一个检索列表的jQueryajax 函数,我需要遍历这个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"]);
    }
}

对于每个警报,我都会收到以下消息:

未定义

提前致谢

【问题讨论】:

  • 你把字符串解析成对象了吗?
  • 您需要将字符串解析为对象,并且它也是一个数组。所以你需要做一个for循环然后提醒

标签: javascript jquery json list for-loop


【解决方案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\"}]";

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

【讨论】:

    【解决方案2】:
    success: function (mapMarkerData) {
        for (i in mapMarkerData) {
            alert(mapMarkerData[i].latitude);
            alert(mapMarkerData[i].longitude);
            alert(mapMarkerData[i].title);
            alert(mapMarkerData[i].draggable);
        }
    }
    

    【讨论】:

    • 谢谢。完全按照我的需要工作。
    【解决方案3】:

    解决方案是这样的

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

    【讨论】:

      【解决方案4】:
      var x = $.parseJSON(jsonData);
      for(var o in x){
         console.log(x[o].latitude);
         console.log(x[o].longitude);
      }
      

      【讨论】:

        【解决方案5】:
        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);
        })
        

        【讨论】:

          【解决方案6】:

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

          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>

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-03-03
            • 2023-04-04
            • 2022-11-01
            • 1970-01-01
            • 2021-04-09
            • 1970-01-01
            • 2018-05-08
            • 1970-01-01
            相关资源
            最近更新 更多