Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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
使用jQuery选择json值_Jquery_Json - Fatal编程技术网

使用jQuery选择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

我有一个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 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
    }
});