好了,所以我的JSON是沿着線的東西:JSON得到一個值,如果另一個值
{
"wares":[
{
"id":"1",
"name":"apples",
"stock":"40",
},
{
"id":"2",
"name":"pears",
"stock":"40",
},
{
"id":"3",
"name":"bananas",
"stock":"30",
}
]
}
所以我希望得到的名稱,如果股票是40,我用這個代碼作爲例如,我在這裏找到:http://techslides.com/how-to-parse-and-search-json-in-javascript/
function getObjects(obj, key, val) {
var objects = [];
for (var i in obj) {
if (!obj.hasOwnProperty(i)) continue;
if (typeof obj[i] == 'object') {
objects = objects.concat(getObjects(obj[i], key, val));
} else
//if key matches and value matches or if key matches and value is not passed (eliminating the case where key matches but passed value does not)
if (i == key && obj[i] == val || i == key && val == '') { //
objects.push(obj);
} else if (obj[i] == val && key == ''){
//only add if the object is not already in the array
if (objects.lastIndexOf(obj) == -1){
objects.push(obj);
}
}
}
return objects;
}
其工作原理,但我還沒有完全找到了一種方法返回的名稱,如果股票是40
我想你把一個額外的價值函數calle d ret(返回)應該返回的內容。東西沿線
alert(JSON.stringify(getObjects(JSON, 'stock', '40', 'name')));
非常感謝!
這是一個非常有用的方法,並且不使用jquery。這也使所有的商品都在一條漂亮的線上而不是幾條,這兩種方法都非常好,而且這一切都歸結於偏好。我也感謝你techfoobar! – user2524703