[英]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.