无法正确访问json github api响应

时间:2015-06-28 21:57:54

标签: javascript jquery json api github-api

我正在尝试从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响应数据时,它所说的一切都是未定义的。有人可以帮帮我吗?

2 个答案:

答案 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.idmyObj.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脚本的文件名来查看来回传输的数据。它应默认为“响应”,但如果没有,请单击它。

enter image description here

enter image description here

如果您有任何疑问,请与我们联系。