Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery从JSON获取对象_Javascript_Jquery_Json_Getjson - Fatal编程技术网

Javascript 使用jQuery从JSON获取对象

Javascript 使用jQuery从JSON获取对象,javascript,jquery,json,getjson,Javascript,Jquery,Json,Getjson,我正在尝试使用$.getJSON在自己的服务器中查询JSON文件,然后在对象中循环。到目前为止没有问题,那么我有一个ID,它是我想要返回的对象的名称,但似乎无法正确获取它: var id = 301; var url = "path/to/file.json"; $.getJSON( url, function( json ) { var items = []; items = json; for (var i = 0; i < items.length

我正在尝试使用
$.getJSON
在自己的服务器中查询JSON文件,然后在对象中循环。到目前为止没有问题,那么我有一个ID,它是我想要返回的对象的名称,但似乎无法正确获取它:

  var id = 301;
  var url = "path/to/file.json";
  $.getJSON( url, function( json ) {
    var items = [];
    items = json;
    for (var i = 0; i < items.length; i++) {
      var item = items[i];
      console.log(item);
    }
  });
这不管用


非常感谢您的帮助。

由于您在要检索的对象中有属性的名称,因此可以使用括号表示法。由于以下原因,您还可以简化代码:

var id=301;
//$.getJSON(“path/to/file.json”,函数(json){
//来自AJAX请求的响应数据:
var json={
'301': {
巴诺斯:2
},
'302': {
巴诺斯:3
},
'303': {
巴诺斯:4
},
'304': {
巴诺斯:5
},
};
var item=json[id];
控制台日志(项目);

//});似乎您的响应被包装在一个包含一个元素的数组中


您可以通过方括号动态访问对象属性:

var id = 301;
var url = "path/to/file.json";
$.getJSON(url, function(json) {
    console.log(json[0][id].banos);
});

console.log(json['301'])@jcubic anwer it,就是这样it@KingRider请使用英语。@jcubic返回未定义的可能的副本,感谢您的帮助,但返回未定义的。我也没有投反对票,我添加了一个有效的例子。如果此代码不起作用,那么您需要将实际的JSON添加到问题中,而不是它的控制台表示的图像。@KingRider抱歉,我不知道您在说什么saying@KingRider有点难以理解你,bro@KingRider我不确定你是认真的还是不认真,想解释一下为什么必须使用方括号两次吗?
[0]
访问包装数组中的第一个(在本例中仅此)元素
[id]
访问在第一步中从数组中提取的对象的属性
id
。是否应展开数组?@TimoSta problem json是不同的对象。您的代码示例是正确的。@user2770956这就是
[0]
所做的。如果你从服务器端的响应中删除了数组,你就不必用JavaScript——如果这是你的意思的话。请提供更多关于你答案的细节,因为这篇文章在低质量的文章中找到了。不鼓励只编写代码和“试试这个”回答,因为它不提供任何可搜索的内容,以及人们为什么要“试试这个”。
var id = 301;
var url = "path/to/file.json";
$.getJSON(url, function(json) {
    console.log(json[0][id].banos);
});
$.each(items,function(n,value){
    if(n==301)
        alert(value);
});