【问题标题】:convert an Array, converted to a String, back to an Array JavaScript Error将 Array 转换为 String 再转换回 Array JavaScript 错误
【发布时间】:2020-06-17 15:11:32
【问题描述】:

我有这个对象:

let startCourseData = {
    'slidesHistory': '[{ id: 1, difficulty: 4, performance: 100, guided_phrases: [], sequence: "A", plan: false, planned: 10 },{ id: 2, difficulty: 4, performance: 30, guided_phrases: [], sequence: "A", plan: false, planned: 0 },{ id: 3, difficulty: 4, performance: 60, guided_phrases: [], sequence: "A", plan: false, planned: 6 },{ id: 4, difficulty: 4, performance: 80, guided_phrases: [], sequence: "B", plan: false, planned: 5 },{ id: 5, difficulty: 4, performance: 80, guided_phrases: [], sequence: "B", plan: false, planned: 6 },{ id: 6, difficulty: 4, performance: 82, guided_phrases: [], sequence: "A", plan: false, planned: 10 },{ id: 7, difficulty: 4, performance: 90, guided_phrases: [], sequence: "C", plan: false, planned: 9 },{ id: 8, difficulty: 4, performance: 90, guided_phrases: [], sequence: "C", plan: false, planned: 8 },{ id: 9, difficulty: 4, performance: 90, guided_phrases: [], sequence: "B", plan: false, planned: 5 },];'
};

我想将 slidesHistory 转换为一个数组,所以我像这样使用 JSON.parse:

const slidesHistorys = JSON.parse(startCourseData.slidesHistory);
console.log(slidesHistorys);

但是我得到一个错误!

Uncaught SyntaxError: 位置 3 处 JSON 中的意外标记 i

我该如何解决这个问题?

【问题讨论】:

  • 您的密钥没有双引号,例如"id: 1" 或简而言之它不是ECMA-404 符合
  • 为什么要使用字符串?
  • 您的 JSON 无效。我不确定您为什么要以这种方式存储它,但我建议修复编码。
  • 数组中对象的键应该有这样的双引号:[{ "id": 1, "difficulty": 4, ....}]
  • 我想将slidesHistory 作为字符串存储到数据库中。这不是一个好主意吗...??

标签: javascript


【解决方案1】:

你可以使用eval

let startCourseData = {
    'slidesHistory': '[{ id: 1, difficulty: 4, performance: 100, guided_phrases: [], sequence: "A", plan: false, planned: 10 },{ id: 2, difficulty: 4, performance: 30, guided_phrases: [], sequence: "A", plan: false, planned: 0 },{ id: 3, difficulty: 4, performance: 60, guided_phrases: [], sequence: "A", plan: false, planned: 6 },{ id: 4, difficulty: 4, performance: 80, guided_phrases: [], sequence: "B", plan: false, planned: 5 },{ id: 5, difficulty: 4, performance: 80, guided_phrases: [], sequence: "B", plan: false, planned: 6 },{ id: 6, difficulty: 4, performance: 82, guided_phrases: [], sequence: "A", plan: false, planned: 10 },{ id: 7, difficulty: 4, performance: 90, guided_phrases: [], sequence: "C", plan: false, planned: 9 },{ id: 8, difficulty: 4, performance: 90, guided_phrases: [], sequence: "C", plan: false, planned: 8 },{ id: 9, difficulty: 4, performance: 90, guided_phrases: [], sequence: "B", plan: false, planned: 5 },];'
};

const slidesHistorys = eval(startCourseData.slidesHistory);
console.log(slidesHistorys);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2019-11-23
    • 2018-04-05
    相关资源
    最近更新 更多