【问题标题】:Parsing JSON data with jQuery使用 jQuery 解析 JSON 数据
【发布时间】:2012-04-29 19:56:58
【问题描述】:

所以我正在使用 Yahoo 的 API 将坐标转换为邮政编码。它返回的 JSON 是这样的:

{
"ResultSet": {
    "version": "1.0",
    "Error": 0,
    "ErrorMessage": "No error",
    "Locale": "us_US",
    "Quality": 99,
    "Found": 1,
    "Results": [{
         ....
     }]

我正在做的是:

$.getJSON("http://where.yahooapis.com/geocode?q=" + lat + ",+" + lon + "&gflags=R&flags=J", function(data){
            console.log(data.ResultSet.Results.postal);
        });

我上面列出的显然行不通。我的问题是:如何访问 Results 数组中的数据?

谢谢

【问题讨论】:

标签: javascript jquery json yahoo-api


【解决方案1】:

由于结果是一个数组,是否将控制台日志行更改为以下工作?

console.log(data.ResultSet.Results[0].postal)

在这种情况下,只需遍历数组以获取每个元素。获取 JSON 的代码对我来说看起来不错,我假设您只是错过了数组元素位 :)

【讨论】:

    【解决方案2】:

    这应该可行。

    $.getJSON("http://where.yahooapis.com/geocode?q=234532,234533&gflags=R&flags=J", function(data){
       $.each(data.ResultSet.Results,function(i,item){
          console.log(data.ResultSet.Results[i].postal);
       });     
    });
    

    例如:http://jsfiddle.net/ALsHH/11/

    【讨论】:

      【解决方案3】:

      console.log(data.ResultSet.Results.postal); 行正在尝试访问名为 data.ResultSet.Results 的对象上名为 portal 的属性,但该属性不存在,因为 Results 是一个对象数组。

      您可能需要做的是迭代数组,例如...

      $.getJSON("http://where.yahooapis.com/geocode?q=" + lat + ",+" + lon + "&gflags=R&flags=J", function(data){
          for (var i=0; i< data.ResultSet.Results.length; i++) {
              console.log("data.ResultSet.Results[i].postal = " + data.ResultSet.Results[i].postal);
      });
      

      【讨论】:

        猜你喜欢
        • 2011-06-03
        • 1970-01-01
        • 2010-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-15
        • 1970-01-01
        相关资源
        最近更新 更多