无法正确访问 json github api 响应
cannot access json github api response correctly
我正在尝试从 github 职位发布 API 访问 JSON 响应数据。这是 JSON 响应结构:
[
{"id":"1", "title":"gameon"},
{"id":"2", "title":"hardlife"},
{"id":"3", "title":"lotsofbugs"}
]
我一直在疯狂寻找访问 id 和 title 的解决方案。我尝试了几种方法(假设响应存储在名为 jsonResponse 的 JS 变量中):
jsonResponse[0][1]["title"]
甚至
jsonResponse[1]["title"]
但似乎一切都不起作用。我想访问响应的每个部分的每个 id 和 title 但我找不到方法。如果我可以访问它,我会在测试时提醒所有内容。每当我尝试访问 JSON 响应数据时,它所说的一切都是未定义的。有人可以帮帮我吗?
如果你想依次访问每个,你可以使用 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
});
如果您正在处理 json 数据,那么您正在处理一个 javascript 对象。如果可以的话,你真的应该只使用 $.parseJSON(),但如果不行,你应该能够使用 myObj.id
和 myObj.title.
或者可能 myObj[0].id
, myObj[0].title
等...(如果您需要更深入,请尝试 javascript 对象参考)
刚得到一些更新的代码和 JSFIDDLE 给你...这是一些测试和演示 stringify 和 parseJSON 函数的代码,所以你可以尝试一下。如您所见,它正在获取正确的数据并发出警报。 :)
(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);
另外,正如其他答案所建议的那样,您可以使用 for each 循环来迭代内容。我会定义 console.dir()
响应并确保在撕掉头发之前正确取回数据。 :) 使用 chrome 开发工具,您可以通过将此行放入您的代码来查看响应的内容...
console.dir(myResponseData);
您还可以通过在 chrome 开发工具中单击 "Network",然后单击 ajax 脚本的文件名来查看来回的数据。它应该默认为 'Response',但如果不是,请单击它。
如果您有任何问题,请告诉我。
我正在尝试从 github 职位发布 API 访问 JSON 响应数据。这是 JSON 响应结构:
[
{"id":"1", "title":"gameon"},
{"id":"2", "title":"hardlife"},
{"id":"3", "title":"lotsofbugs"}
]
我一直在疯狂寻找访问 id 和 title 的解决方案。我尝试了几种方法(假设响应存储在名为 jsonResponse 的 JS 变量中):
jsonResponse[0][1]["title"]
甚至
jsonResponse[1]["title"]
但似乎一切都不起作用。我想访问响应的每个部分的每个 id 和 title 但我找不到方法。如果我可以访问它,我会在测试时提醒所有内容。每当我尝试访问 JSON 响应数据时,它所说的一切都是未定义的。有人可以帮帮我吗?
如果你想依次访问每个,你可以使用 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
});
如果您正在处理 json 数据,那么您正在处理一个 javascript 对象。如果可以的话,你真的应该只使用 $.parseJSON(),但如果不行,你应该能够使用 myObj.id
和 myObj.title.
或者可能 myObj[0].id
, myObj[0].title
等...(如果您需要更深入,请尝试 javascript 对象参考)
刚得到一些更新的代码和 JSFIDDLE 给你...这是一些测试和演示 stringify 和 parseJSON 函数的代码,所以你可以尝试一下。如您所见,它正在获取正确的数据并发出警报。 :)
(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);
另外,正如其他答案所建议的那样,您可以使用 for each 循环来迭代内容。我会定义 console.dir()
响应并确保在撕掉头发之前正确取回数据。 :) 使用 chrome 开发工具,您可以通过将此行放入您的代码来查看响应的内容...
console.dir(myResponseData);
您还可以通过在 chrome 开发工具中单击 "Network",然后单击 ajax 脚本的文件名来查看来回的数据。它应该默认为 'Response',但如果不是,请单击它。
如果您有任何问题,请告诉我。