2015-10-27 43 views
2

我試圖篩選出基於字符串的所有對象的字符串屬性的屬性如下:過濾JSON與JavaScript的

var data = $.parseJSON(valid_json); 

data = data.filter(function (el) { 
    return (el.name == 'myName'); 
}); 

這將返回一個空數組,但比較整數作品:

var data = $.parseJSON(valid_json); 

data = data.filter(function (el) { 
    return (el.price == 1000); 
}); 

這將得到價格= 1000的所有對象

我在做什麼錯了?

+0

!注意:'=='=''===參見[這裏](HTTPS://developer.mozilla。 org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Equality_%28%29) – empiric

+1

你爲什麼要解析一個有效的json?你可以發佈該json嗎? – Jai

+0

它應該按預期工作。也許你的對象中沒有'name'屬性,或者沒有名稱爲'myName'的對象 –

回答

0

如果你有一個有效的JSON,那麼你不必解析它來創建一個有效的JSON。當你有一個有效的JSON字符串像只應做到:

var jsonstr = '{"name":"Foo", "price":"1000"}'; // this one needs parsing. 

的原因將是空的Array可能是您的目標對象的一個​​關鍵的錯誤值或值不存在的你有的對象。

其實這是爲我工作:

var data = [{name:"Foo", price:1000}, {name:"Bar", price:1000}]; 
 

 
data = data.filter(function (el) { 
 
    return (el.name == 'Foo'); 
 
}); 
 

 
document.body.innerHTML = '<pre>'+ JSON.stringify(data) +'</pre>';