繁体   English   中英

JSON数据未解析?

[英]JSON data is not parsed?

我跟着建议这里如何使用JSON。

使用后

$resultAml =  json_encode($resultArray);

在PHP中,我在客户端得到这个:

[{"id":"1","0":"1","title":"Facebook","1":"Facebook","url":"http://facebook.com","2":"http://facebook.com","domain":"facebook.com","3":"facebook.com","tag":"","4":""},{"id":"1","0":"1","title":"Ideeli","1":"Ideeli","url":"http://www.ideeli.com","2":"http://www.ideeli.com","domain":"ideeli.com","3":"ideeli.com","tag":"web","4":"web"},{"id":"1","0":"1","title":"Kikin","1":"Kikin","url":"http://www.kikin.com","2":"http://www.kikin.com","domain":"kikin.com","3":"kikin.com","tag":"web","4":"web"},{"id":"1","0":"1","title":"Lot18","1":"Lot18","url":"http://www.lot18.com","2":"http://www.lot18.com","domain":"lot18.com","3":"lot18.com","tag":"web","4":"web"},{"id":"1","0":"1","title":"Quora","1":"Quora","url":"http://quora.com","2":"http://quora.com","domain":"quora.com","3":"quora.com","tag":"","4":""},{"id":"1","0":"1","title":"Twitter","1":"Twitter","url":"http://twitter.com","2":"http://twitter.com","domain":"twitter.com","3":"twitter.com","tag":"","4":""}] 

根据json.org,这看起来像有效的JSON

但是

当我在客户端使用解析时

JSON.parse

我得到这个结果:

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

表中的每个条目看起来像一个[object Object]。

什么是对象对象?

我在哪里错了? 否则,如何获得结果中的数据?

您拥有数据,只是误解了其显示方式。 任何JavaScript Object的默认字符串表示形式就是JSON {...}值,就是[object Object] 如果尝试访问对象的属性,则会看到您期望的数据在那里:

var input = '[{"id":"1","0":"1","title":"Facebook","1":"Facebook","url":"http://facebook.com","2":"http://facebook.com","domain":"facebook.com","3":"facebook.com","tag":"","4":""},{"id":"1","0":"1","title":"Ideeli","1":"Ideeli","url":"http://www.ideeli.com","2":"http://www.ideeli.com","domain":"ideeli.com","3":"ideeli.com","tag":"web","4":"web"},{"id":"1","0":"1","title":"Kikin","1":"Kikin","url":"http://www.kikin.com","2":"http://www.kikin.com","domain":"kikin.com","3":"kikin.com","tag":"web","4":"web"},{"id":"1","0":"1","title":"Lot18","1":"Lot18","url":"http://www.lot18.com","2":"http://www.lot18.com","domain":"lot18.com","3":"lot18.com","tag":"web","4":"web"},{"id":"1","0":"1","title":"Quora","1":"Quora","url":"http://quora.com","2":"http://quora.com","domain":"quora.com","3":"quora.com","tag":"","4":""},{"id":"1","0":"1","title":"Twitter","1":"Twitter","url":"http://twitter.com","2":"http://twitter.com","domain":"twitter.com","3":"twitter.com","tag":"","4":""}]';
var data = JSON.parse(input);
alert(data[0].title); // displays "Facebook"

一切都正确。

对打印对象属性没有特殊支持; { a: 42 }.toString()返回[object Object]

要查看实际数据,请调用console.log(something)
这将在控制台中显示实际的对象结构。

让我们看一下您的json解析数据。

[
 {
  "id":"1",
  "0":"1",
  "title":"Facebook",
  "1":"Facebook",
  "url":"http://facebook.com",
  "2":"http://facebook.com",
  "domain":"facebook.com",
  "3":"facebook.com",
  "tag":"",
  "4":""
},
{
  "id":"1",
  "0":"1",
  "title":"Ideeli",
  "1":"Ideeli",
  "url":"http://www.ideeli.com",
  "2":"http://www.ideeli.com",
  "domain":"ideeli.com",
  "3":"ideeli.com",
  "tag":"web",
  "4":"web"
},
{
  "id":"1",
  "0":"1",
  "title":"Kikin",
  "1":"Kikin",
  "url":"http://www.kikin.com",
  "2":"http://www.kikin.com",
  "domain":"kikin.com",
  "3":"kikin.com",
  "tag":"web",
  "4":"web"
},
{
  "id":"1",
  "0":"1",
  "title":"Lot18",
  "1":"Lot18",
  "url":"http://www.lot18.com",
  "2":"http://www.lot18.com",
  "domain":"lot18.com",
  "3":"lot18.com",
  "tag":"web",
  "4":"web"
},
{
  "id":"1",
  "0":"1",
  "title":"Quora",
  "1":"Quora",
  "url":"http://quora.com",
  "2":"http://quora.com",
  "domain":"quora.com",
  "3":"quora.com",
  "tag":"",
  "4":""
},
{
  "id":"1",
  "0":"1",
  "title":"Twitter",
  "1":"Twitter",
  "url":"http://twitter.com",
  "2":"http://twitter.com",
  "domain":"twitter.com",
  "3":"twitter.com",
  "tag":"",
  "4":""
}
]

看来您的数据中有很多对象。 对象是具有属性的数据的集合。 您的对象具有以下属性:

id, 0, title, 1, url, 2, domain, 3, tag, 4

如果与PHP模式进行比较,这就像一个多维数组。 对于Java和PHP,如果要处理所有条目,都必须遍历数据对象。 您可以通过使用jQuery“ each()”函数来实现。

var data = 'yourJSONoutput';    
 $.each(data, function() {
     alert(this.title);
 });

这将提醒您json数据中所有对象的标题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM