Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助将此对象解析为JSON(javascript)_Javascript_Json_Parsing - Fatal编程技术网

需要帮助将此对象解析为JSON(javascript)

需要帮助将此对象解析为JSON(javascript),javascript,json,parsing,Javascript,Json,Parsing,我试图使用javascript中的JSON.parse方法解析JSON数据(在底部)。下面是代码 var i; var myData={}; $(document).ready(function(){ $.get("http://localhost:4567/get/233307/loc/15000/10", function(data){ display(data); }, "json"); }); f

我试图使用javascript中的
JSON.parse
方法解析JSON数据(在底部)。下面是代码

 var i;
 var myData={};
 $(document).ready(function(){

        $.get("http://localhost:4567/get/233307/loc/15000/10", function(data){
                display(data);

            }, "json");
    });
 function display(x){
    for(i = 0; i <= x.length;i++){
        myData = JSON.parse(x[i]);
    }
    alert(myData[2].uid);
 }

对象周围缺少数组括号

[{"id":64567868968,"uid":233307,"lat":41.418972,"long":-72.8941315,"date":"2010-11-11T16:01:15-05:00"},{"id":64567803255,"uid":
233307,"lat":41.4189505,"long":-72.89411,"date":"2010-11-11T16:00:13-05:00"},{"id":64567803254,"uid":233307,"lat":
41.4189451666667,"long":-72.8940725,"date":"2010-11-11T15:59:11-05:00"},{"id":64567803253,"uid":233307,"lat":
41.4188646666667,"long":-72.8940831666667,"date":"2010-11-11T15:58:08-05:00"},{"id":64567803252,"uid":233307,"lat":
41.4190095,"long":-72.8941905,"date":"2010-11-11T15:57:06-05:00"},{"id":64567700284,"uid":233307,"lat":
41.418972,"long":-72.894169,"date":"2010-11-11T15:56:04-05:00"}]
你是说:

function display(x){
    var myData = [];
    for(i = 0; i <= x.length; i++){
        myData.push(JSON.parse(x[i]));
    }
    alert(myData[2].uid);
}
功能显示(x){
var myData=[];
对于(i=0;i3个问题,我看到:

  • 您不需要
    JSON.parse()
    ;通过为
    GET
    请求指定
    JSON
    作为
    dataType
    ,您要求jQuery自动将响应解析为JSON。因此,当调用
    display()
    时,
    x
    已经是一个JSON对象,而不是需要解析的字符串

  • 您似乎希望迭代
    display()
    中的数组,但示例响应不是数组,它只是一个以逗号分隔的JSON对象列表。除非它包含在
    []
    中,否则它不是有效的JSON(使其成为数组)。如果这确实是您的响应,那么jQuery将无法解析它,并且
    x
    将是未定义的

  • 最后,(一旦你修复了#2),你已经在数组上进行了迭代,
    myData
    在循环的每次迭代中被(重新)分配给下一个JSON对象,并最终被设置为最后一个JSON对象,它不是数组,所以
    myData[2]
    无效。它应该是
    myData.uid
    。或者,由于它们都具有相同的
    uid
    ,您可以将
    display()
    更改为:

     function display(x){
        if(x && x.length > 0){
            alert(myData[0].uid);
        }
     }
    
  •  function display(x){
        if(x && x.length > 0){
            alert(myData[0].uid);
        }
     }