Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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 在JSON对象中搜索特定键_Javascript_Json_Object_Loops_Iteration - Fatal编程技术网

Javascript 在JSON对象中搜索特定键

Javascript 在JSON对象中搜索特定键,javascript,json,object,loops,iteration,Javascript,Json,Object,Loops,Iteration,我目前正在尝试遍历一个JSON对象,该对象如下所示: "coupons":{ "item1":{ "id":"155", "name":"First Item", "value":-5199.6 }, "item2":{ "id":"255", "name":"Second Item", "value":-424.91 } } 我想返回每个项目id的值。我

我目前正在尝试遍历一个JSON对象,该对象如下所示:

"coupons":{
    "item1":{
         "id":"155",
         "name":"First Item",
         "value":-5199.6
    },
    "item2":{
         "id":"255",
         "name":"Second Item",
         "value":-424.91
    }
}
我想返回每个项目id的值。我如何才能实现这一点

我在用JS编程

谢谢

var obj = { 'json...' };

for (var key in obj)
{
    var item = obj[key];
    alert("id is " + item.id);
}
您可以使用
var。。在obj
语法中,迭代任何对象的属性(或关联索引;在JS中也是如此)。始终要注意了解要迭代的对象,因为某些对象(如数组)具有其他要避免迭代的属性


您可以使用
var。。在obj
语法中,迭代任何对象的属性(或关联索引;在JS中也是如此)。始终要注意了解要迭代的对象,因为某些对象(如数组)具有其他要避免迭代的属性。

每个
优惠券[k]
都是项目,您可以使用
优惠券[k]获取id。id

var coupons = {
    "item1":{
         "id":"155",
         "name":"First Item",
         "value":-5199.6
    },
    "item2":{
         "id":"255",
         "name":"Second Item",
         "value":-424.91
    }
}

for(var k in coupons){
      console.log(coupons[k].id);

}

每个
优惠券[k]
都是项目,您可以使用
优惠券[k].id获取id

var coupons = {
    "item1":{
         "id":"155",
         "name":"First Item",
         "value":-5199.6
    },
    "item2":{
         "id":"255",
         "name":"Second Item",
         "value":-424.91
    }
}

for(var k in coupons){
      console.log(coupons[k].id);

}

我想提出如下建议:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
var dataset = {
                "coupons":{
                    "item1":{
                         "id":"155",
                         "name":"First Item",
                         "value":-5199.6
                    },
                    "item2":{
                         "id":"255",
                         "name":"Second Item",
                         "value":-424.91
                    }
                }
            }

$(document).ready(function(){

    $.each(dataset.coupons, function(i, item) {
        $("#data").append('<p>' + item.id + '</p>'); 
        $("#data").append('<p>' + item.name + '</p>'); 
        $("#data").append('<p>' + item.value + '</p>'); }
    );

});

</script>
<div id="contentC"></div>

变量数据集={
“优惠券”:{
“项目1”:{
“id”:“155”,
“名称”:“第一项”,
“值”:-5199.6
},
“项目2”:{
“id”:“255”,
“名称”:“第二项”,
“价值”:-424.91
}
}
}
$(文档).ready(函数(){
$.each(dataset.优惠券,函数(i,项){
$(“#数据”).append(“”+item.id+”

”); $(“#数据”).append(“”+item.name+”

”); $(“#数据”).append(“”+item.value+”

);} ); });
我建议如下:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
var dataset = {
                "coupons":{
                    "item1":{
                         "id":"155",
                         "name":"First Item",
                         "value":-5199.6
                    },
                    "item2":{
                         "id":"255",
                         "name":"Second Item",
                         "value":-424.91
                    }
                }
            }

$(document).ready(function(){

    $.each(dataset.coupons, function(i, item) {
        $("#data").append('<p>' + item.id + '</p>'); 
        $("#data").append('<p>' + item.name + '</p>'); 
        $("#data").append('<p>' + item.value + '</p>'); }
    );

});

</script>
<div id="contentC"></div>

变量数据集={
“优惠券”:{
“项目1”:{
“id”:“155”,
“名称”:“第一项”,
“值”:-5199.6
},
“项目2”:{
“id”:“255”,
“名称”:“第二项”,
“价值”:-424.91
}
}
}
$(文档).ready(函数(){
$.each(dataset.优惠券,函数(i,项){
$(“#数据”).append(“”+item.id+”

”); $(“#数据”).append(“”+item.name+”

”); $(“#数据”).append(“”+item.value+”

);} ); });
您可以使用definatjs(),它使您能够使用XPath查询搜索JSON结构。这个库使用“search”方法扩展了全局对象JSON,并返回一个包含匹配项的数组(如果有的话)(空数组,i未找到匹配项)

XPath是一种标准化的查询语言,非常容易掌握。下面是一个带有示例的测试工具

看看这把小提琴

var数据={
...
},
res=JSON.search(数据'/*[id]'),
str='';
对于(var i=0;i您可以使用Deviantjs(),它使您能够使用XPath查询搜索JSON结构。此库使用“search”方法扩展全局对象JSON,并返回一个包含匹配项的数组(如果有)(空数组,则我找不到匹配项)

XPath是一种标准化的查询语言,非常容易掌握

看看这把小提琴;

var数据={
...
},
res=JSON.search(数据'/*[id]'),
str='';

对于(VARI=0;IWY您为什么要将对象与
item1
item2
等一起使用?您应该改用数组。
{“优惠券”:[{“id”:“155”,…},{“id”:“255”,…}]}
然后您可以只执行
数据.优惠券.map(函数(obj){return obj.id;})
为什么要将对象与
item1
item2
等一起使用?您应该使用数组。
{“优惠券”:[{“id”:“155”,…},{“id”:“255”,…}}}
然后您可以只做
数据.tups.map(函数(obj){return obj.id;};