Javascript 来自URL的JSON

Javascript 来自URL的JSON,javascript,json,Javascript,Json,好吧,我一整天都在想这个问题,但是我不明白为什么这个方法不起作用 我有一个创建此输出的URL: [{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"},{"id":"6"},{"id":"7"},{"id":"8"},{"id":"9"},{"id":"10"},{"id":"11"},{"id":"12"},{"id":"13"},{"id":"14"}] [Object { id="1"}, Object { id="2"}, Obj

好吧,我一整天都在想这个问题,但是我不明白为什么这个方法不起作用

我有一个创建此输出的URL:

[{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"},{"id":"6"},{"id":"7"},{"id":"8"},{"id":"9"},{"id":"10"},{"id":"11"},{"id":"12"},{"id":"13"},{"id":"14"}]
[Object { id="1"}, Object { id="2"}, Object { id="3"}, Object { id="4"}, Object { id="5"}, Object { id="6"}, Object { id="7"}, Object { id="8"}, Object { id="9"}, Object { id="10"}, Object { id="11"}, Object { id="12"}, Object { id="13"}, Object { id="14"}]
在我的JS文件中,我有一个简单的代码:

$.getJSON("path_to_url", function(data) { 
   console.log(data);                            
});
这将提供以下输出:

[{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"},{"id":"6"},{"id":"7"},{"id":"8"},{"id":"9"},{"id":"10"},{"id":"11"},{"id":"12"},{"id":"13"},{"id":"14"}]
[Object { id="1"}, Object { id="2"}, Object { id="3"}, Object { id="4"}, Object { id="5"}, Object { id="6"}, Object { id="7"}, Object { id="8"}, Object { id="9"}, Object { id="10"}, Object { id="11"}, Object { id="12"}, Object { id="13"}, Object { id="14"}]
我一整天都在试图修改我的PHP文件,以更好的方式生成它,等等,最后我只是把它简化了。 但是我应该如何从我的JS文件中“回显”这个呢

console.log(data.(?));

提前感谢您,如果您知道任何好的、易于理解的文档,请告诉我:)

对象在一个数组中。你可以这样称呼他们

console.log(data[0].id);
console.log(data[1].id);
通过这种方式,您可以在列表上循环并访问每个ID

更经典的描述

[]
是一个列表(或
切片
)(一个没有限制的数组)

{}
是一个字典(或
map
),它可以包含多维切片

[]
只能通过其索引(
0
1
等)访问

由于JavaScript没有真正的经典类(不包括原型原理),对象只是字典中变量和lambs函数的动态集合(
map

数组是高级语言中使用最多的数据类型。它们相互绑定字节。C中的一个简单的
单词
在Unicode引用中如下所示:

[ 119 111 114 100 ]

这是一个简单的
int8
(字节)集合,其中字符串解析器知道要从字符集中显示哪个字母。

数组的第0项是一个对象,因此要显示每个项目,您需要:

for (var key in data[0]) {
  if (data[0].hasOwnProperty(key)) {
    console.log(key + " -> " + data[0][key]);
  }
}

看看jQuery的每个函数


如果希望PHP文件生成id数组,则首先需要了解语法,在浏览器的控制台中,可以执行以下命令:

console.log(JSON.stringify([1,2,3,4]));//=[1,2,3,4]
因此,在PHP中,您可以创建一个id为

$idArray;//this is the array containing 0=>(id=>1),1=>(id=>2)
$ret;//the array that will return the id's
foreach($idArray as $id){
  $ret[]=$id["id"];
};
echo json_encode($ret);//should give the output [1,2,3,4];
在JavaScript中,您现在有一个数字数组,而不是对象数组,您可以像这样遍历它们:

var i = -1,len = data.length;
while(++i < len){
  console.log("id at",i," is:",data[i]);
}
var i=-1,len=data.length;
而(++i
你是什么意思?控制台中的输出正是您从服务器接收到的。您希望输出什么以及输出到哪里?您的问题是关于如何使用控制台,还是与
数据的值不符合您的预期有关?看起来您的输出工作正常。可能的重复就是您应该得到的输出。现在您必须学习如何实际访问数据。请不要将术语“JSON对象”用于JavaScript对象@FelixKling并不是JavaScript中的一切都是对象,因为JavaScript是面向对象的?谢谢@TheWobbuffet!但是我尝试了Ricki的答案,效果很好:)但是我会保存这个页面,并且通过查看它来保存它:)@MariusDjerv没问题,你无法抗拒jQuery:)除了原始值以外的所有东西都是JavaScript中的对象。然而,这与JSON无关。术语“JSON对象”经常被错误地用于JavaScript对象,可能是因为JSON语法和JS对象文本语法看起来非常相似。然而,JSON与JS对象有着本质的不同。JSON是独立于语言的文本数据交换格式(如XML、CSV、YAML),对象是JavaScript中的数据类型。JS对象文本是特定于JavaScript语言的语法构造。谢谢@RickiRunge!:D谢谢你提供的信息,我需要阅读更多关于这方面的信息。:)