使用jQuery选择json值
我有一个json对象,如下所示:使用jQuery选择json值,jquery,json,Jquery,Json,我有一个json对象,如下所示: [{"Id":"1","Item":"Apples","PricePerKilo":"10.00"}, {"Id":"3","Item":"Oranges","PricePerKilo":"12.00"}] 我希望在Id为3的位置获取价格 var fruits = jQuery("#products").data('productData'); 顺便说一下,fruits持有json对象 我将解释我想在SQL中做什么,因为我发现这样解释更容易 SELECT
[{"Id":"1","Item":"Apples","PricePerKilo":"10.00"},
{"Id":"3","Item":"Oranges","PricePerKilo":"12.00"}]
我希望在Id为3的位置获取价格
var fruits = jQuery("#products").data('productData');
顺便说一下,fruits持有json对象
我将解释我想在SQL中做什么,因为我发现这样解释更容易
SELECT PricePerKilo From fruits WHERE Id = 3 LIMIT 1
你必须循环!(另外,如果fruits
保存的是JSON而不是数组[它不能同时保存这两个],那么应该首先对其使用jQuery.parseJSON
)
fruit
将包含Id为3
的fruit或未定义的fruit(如果它不存在)。您必须在数组中循环并选择匹配的Id:
$.each(fruits, function(i, val){
if (val.Id == 3) {
// val is now the single fruit object with the id of 3
}
});
我喜欢这种方法,但是如果id不存在,fruit
不会保留最后一个水果对象吗?@Steve:这是一个不寻常的循环:)而不是I
,条件是fruit=fruits[I]
。所以当水果
变成未定义
时它就存在了。。。好电话。但是,当您试图访问未定义的的Id
时,这不会给您一个JS错误吗?如果(fruit&&fruit.Id==3)
,是否应该是?@Steve:不,循环将在发生之前中断。这就像while(水果=水果[i]){…}
。啊。。。我想我现在明白了。问题中提供的json是一个包含数组的json对象。苹果的数组索引为0,橘子的数组索引为1。每个数组索引都保存名称/值对。我必须循环索引以找到我所需的名称/值对?
$.each(fruits, function(i, val){
if (val.Id == 3) {
// val is now the single fruit object with the id of 3
}
});