【问题标题】:Parsing jQuery data in JavaScript (JSON)在 JavaScript (JSON) 中解析 jQuery 数据
【发布时间】:2010-10-02 15:02:47
【问题描述】:

我正在使用 PHP、jQuery 和 JSON。现在我需要知道如何在 JavaScript 中解析 jQuery 数据。

加载.php

<?php

    ...
    $json =json_encode($array);

?>

它通过以下数据返回jQuery。

 [{"name":"STA","distance":"250","code":25},
 {"name":"GIS","distance":"500","code":45}]

jQuery 代码

$.getJSON("load.php", function(json){
    // Access object
    var a = json;
    pass(a);
});

现在我需要将 JSON (a) 传递给文件 my.js 中定义的 JavaScript:

var myjson = {};

function pass(a) {
    myjson = a;

    //Here, how do I get name, and distance, code.
    //I have tried "alert(myjson.name)". It returns undefined.
}

我应该对我的逻辑进行哪些更改?

【问题讨论】:

    标签: php javascript jquery json


    【解决方案1】:

    您有一个 JSON 对象数组,因此您需要遍历该数组以获取每个单独的对象:

    for(var x = 0; x < myjson.length; x++) {
        alert(myjson[x].name);
        // myjson[x].distance, myjson[x].code also available
    }
    

    或者,如果你想用 jQuery 的方式来做:

    jQuery.each(myjson, function(x) {
        alert(myjson[x].name);
    });
    

    这两个示例都会给您一个警报,其中包含“STA”和“GIS”。

    除此之外,正如 OIS 所指出的,您还试图在代码中读取错误的变量。 JSON 应位于名为 a 的变量中。

    【讨论】:

      【解决方案2】:

      您尝试使用未在您的函数范围内定义的名为 json 的变量。相反,您必须使用名为 a 的参数。

      function pass(a) {
         var i;
          while(i = a.pop()) {
              alert(i.name + " " + i.distance);
          }
      }
      

      【讨论】:

      • 不可能将所有 JSON 对象从 jQuery 传输到 javscript。所以所有的操作都使用 javascript,有什么想法吗?
      • 对不起,但你必须改写。我不明白你想如何使用代码?
      猜你喜欢
      • 2016-03-19
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      • 2012-06-05
      • 1970-01-01
      相关资源
      最近更新 更多