Javascript 在JSON对象中搜索特定键
我目前正在尝试遍历一个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的值。我
"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;};