我正在尝试从github作业发布API访问JSON响应数据。这是JSON响应结构:
[
{"id":"1", "title":"gameon"},
{"id":"2", "title":"hardlife"},
{"id":"3", "title":"lotsofbugs"}
]
我一直在疯狂地找到访问 id 和标题的解决方案。我尝试了几种方法(假设响应存储在名为jsonResponse的JS变量中):
jsonResponse [0] [1] ["标题"]
甚至像
之类的东西jsonResponse [1] ["标题"]
但是一切似乎根本不起作用。我想为每个响应部分访问每个 ID 和标题,但我找不到办法。如果我可以访问它,我会在测试时提醒所有内容。每当我尝试访问JSON响应数据时,它所说的一切都是未定义的。有人可以帮帮我吗?
答案 0 :(得分:3)
如果您想依次访问每个,可以使用forEach
功能。
var response = [
{"id":"1", "title":"gameon"},
{"id":"2", "title":"hardlife"},
{"id":"3", "title":"lotsofbugs"}
];
response.forEach(function(obj) {
var id = obj.id;
var title = obj.title;
// Do things with the data here
});
答案 1 :(得分:1)
如果您正在处理json数据,那么您正在处理javascript对象。如果可以的话,你真的应该只使用 $。parseJSON(),但如果没有,你应该能够使用myObj.id
和myObj.title.
或者可能{{}来访问该对象。 1}},myObj[0].id
等...(如果您需要更深入,请尝试javascript对象参考)
刚刚获得了一些更新的代码和一个JSFIDDLE ...这是一些代码,可以测试和演示stringify和parseJSON函数,以便您可以使用它。正如您所看到的,它正在获取正确的数据并提醒它。 :)
myObj[0].title
另外,正如另一个答案所示,您可以使用a for each循环来迭代内容。我会定义(function($){
$(function(){ //document.ready
var myResponseData = [
{"id":"1", "title":"gameon"},
{"id":"2", "title":"hardlife"},
{"id":"3", "title":"lotsofbugs"}
];
myResponseData = JSON.stringify(myResponseData);
console.dir(myResponseData);
var myObj = $.parseJSON(myResponseData);
console.dir(myObj);
alert(myObj[0].title);
});
})(jQuery);
响应并确保在撕掉你的头发之前正确地恢复数据。 :)使用chrome dev工具,您可以通过在代码中添加此行来查看响应的内容...
console.dir()
您还可以通过单击chrome dev工具中的“网络”,然后单击ajax脚本的文件名来查看来回传输的数据。它应默认为“响应”,但如果没有,请单击它。
如果您有任何疑问,请与我们联系。