2017-06-05 64 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'}]`}]