2017-06-05 52 views
0

我有這樣的例子代碼中解析字符串化的陣列:無法數組

let testData= [{name:'Joshua',age:22,option:"[{value:'test'}]"},{name:'Ali',age:200,option:"[{value:'test2'}]"}] 

let parsedData=JSON.parse(testData[0].option); 
console.log(parsedData); 

使用本網站的測試我的代碼:https://es6console.com/

看來,我無法分析&日誌中的數據在所有。

任何想法爲什麼會發生這種情況?

+3

'option'是無效的JSON作爲'需要value'被引用...' '[{ 「值」: 「測試」}]'' – evolutionxbox

回答

1

option字符串不繼JSON規格:在每一個JSON鍵和字符串值需要被封閉在雙引號。因此,這會工作:

let testData= [{ 
 
    name: 'Joshua', 
 
    age: 22, 
 
    option: '[{"value": "test"}]' 
 
}, { 
 
    name: 'Ali', 
 
    age: 200, 
 
    option: '[{"value": "test2"}]' 
 
}]; 
 

 
let parsedData = JSON.parse(testData[0].option); 
 
console.log(parsedData);

+0

謝謝,這工作! –

0

我認爲問題是JSON對象的字段應該用雙引號括起來。 例如

let testData = [{name:'Joshua',age:22,option:`[{"value":'test'}]`},{name:'Ali',age:200,option:`[{"value":'test2'}]`}]