【问题标题】:Unable to parse stringified array within an array无法解析数组中的字符串化数组
【发布时间】:2017-11-06 01:22:24
【问题描述】:

我有这个示例代码:

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/

我似乎根本无法解析和记录数据。

任何想法为什么会发生这种情况?

【问题讨论】:

  • option 是无效的 JSON,因为需要引用 value...'[{"value":"test"}]'

标签: javascript arrays json string stringify


【解决方案1】:

我认为问题在于 JSON 对象的字段应该用双引号括起来。 例如。

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

【讨论】:

    【解决方案2】:

    您的 option 字符串不符合 JSON 规范:在 JSON 中,每个键和字符串值都需要用 double 引号括起来。所以这会起作用:

    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);

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 2015-03-27
      • 2020-06-21
      相关资源
      最近更新 更多