【问题标题】:Parsing and extracting JSON in Javascript在 Javascript 中解析和提取 JSON
【发布时间】:2016-01-20 11:04:43
【问题描述】:

我正在使用 Google 地理编码 API 并尝试获取值: 9.081999,以及 8.675276999999999 分别在以下 Google 地理编码 Javascript 中的 JSON 数据中。

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Nigeria",
               "short_name" : "NG",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Nigeria",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 13.8856449,
                  "lng" : 14.677982
               },
               "southwest" : {
                  "lat" : 4.2464428,
                  "lng" : 2.676932
               }
            },
            "location" : {
               "lat" : 9.081999,
               "lng" : 8.675276999999999
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 13.8856449,
                  "lng" : 14.677982
               },
               "southwest" : {
                  "lat" : 4.2464428,
                  "lng" : 2.676932
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJDY2kfa8LThARyAvFaEH-qJk",
         "types" : [ "country", "political" ]
      }
   ],
   "status" : "OK"
}

但是当我这样做时:

var myJSONResult = $.parseJSON(request.responseText);
var myAddress = Array();
for (i = 0; i < myJSONResult.results.length; i++) {
        myAddress[i] = myJSONResult.results[i].geometry.location;
}

它返回Undefined

任何帮助表示赞赏, 谢谢。

【问题讨论】:

  • results[i] 已经是geometry
  • 即便如此,results[i] 仍然提供Undefined
  • 你为什么使用 $.parseJSON()?试试 var myJSONResult = request.responseText
  • @Yogesh request.responseText 包含整个 JSON 数据,我只需要 "location" : { "lat" : 9.081999, "lng" : 8.675276999999999 } 中的值
  • 尝试替换 var myJSONResult = $.parseJSON(request.responseText); with var myJSONResult = request.responseText;

标签: javascript json parsing geocoding google-geocoder


【解决方案1】:

试试这个

var myJSONResult = request.responseText;
var myAddress = Array();
for (i = 0; i < myJSONResult.results.length; i++) {
        myAddress[i] = myJSONResult.results[i].geometry.location;
}

无需使用$.parseJSON(),因为您的响应已经是一个 JSON 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2019-04-10
    相关资源
    最近更新 更多