阅读JSON数组与jQuery
我想在控制台中输出一些JSON对象,但它似乎不工作。这个JSON来自我使用PHP创建的迷你API。阅读JSON数组与jQuery
我的JSON是这样的:
{
TotalResults: 2,
Results: [
{
UserName: "Sarah",
ModifDate: "2014-12-01T08:03:40.000+00:00",
ID: "54321",
Title: "Brilliant",
RText: "This is a brilliant product"
},
{
UserName: "Joe",
LastModificationTime: "2014-11-01T08:03:40.000+00:00",
Id: "12345",
Title: "Excellent",
RText: "This is a great console,"
}
]
}
我的javascript:
$.ajax({
url:'http://myapi.com?api=1&test=test',
dataType: 'json',
type: 'get',
cache: false,
success:function(data){
for (var i in data) {
var count = data[i].TotalResults;
var name = data[i].Results.UserName;
var text = data[i].Results.RText;
console.log(name);
console.log(text);
}
}
});
然而,正在返回任何和我在控制台日志如下:
遗漏的类型错误:无法读取未定义的属性'TotalResults'
你们有没有更简单的方法来读取数组中的JSON数据?
我最终希望将这些数据作为HTML输出到DOM中。
$.ajax({
url:'http://myapi.com?api=1&test=test',
dataType: 'json',
type: 'get',
cache: false,
success:function(data){
for (var i in data.Results) {
var count = data.TotalResults;
var name = data.Results[i].UserName;
var text = data.Results[i].RText;
console.log(name);
console.log(text);
}
}
});
你的迭代有点不礼貌,这应该现在工作。
这里是一个的jsfiddle显示它的工作原理:http://jsfiddle.net/n7afxhed/
完美!它的工作,非常感谢! 抱歉的错误:var count = data [i] .TotalResults它应该是var count = data.TotalResults – AlexisP 2014-12-07 17:37:41
您正在阅读的JSON响应的方式是错误的
你应该阅读data
对象像一个正常/本地JavaScript/JSON对象:
在你成功的回调函数:
function(data) {
//data.Results is the array , we fetch it using the forEach Javascript function, you can use for also...
data.Results.forEach(function(result) {
console.log(result.UserName)
...
})}
你甚至都不需要发送的TotalResult p roperty,因为你可以像原生的Javascript数组一样获得数组长度:data.Results.length
。
因此,在其他世界中,当您正在阅读JSON数据时,请将它读取为一个简单的Javascript对象。
执行一个console.log,它返回'data' ...有时它看起来不像我们期望的。这可能会为您提供前进的信息。 – rfornal 2014-12-07 17:26:22
把'console.log(data);'和'console.log(text);'返回的是什么? – Riad 2014-12-07 17:29:29