【问题标题】:Javascript JSON parsing error: Unexpected token ' in JSON at position 1Javascript JSON 解析错误:位置 1 处的 JSON 中出现意外标记
【发布时间】:2018-10-07 10:44:14
【问题描述】:

我无法将以下字符串解析为 JSON 数组:

var timeSlots = "['11AM-12PM', '1PM-2PM']";

JSON.parse(timeSlots);

抛出以下错误:

VM163:1 Uncaught SyntaxError: Unexpected token ' in JSON at position 1

【问题讨论】:

  • 在 JSON 中所有字符串都使用双引号 " 单引号无效
  • JSON.parse('["11AM-12PM", "1PM-2PM"]')
  • var timeSlots = '"[\'11AM-12PM\', \'1PM-2PM\']"';

标签: javascript json


【解决方案1】:

在 JSON 中,名称/值对由一个字段名称(用 引号括起来)、后跟一个冒号和一个值组成。

将单引号替换为以转义 (\) 字符为前缀的双引号:

var timeSlots = "[\"11AM-12PM\", \"1PM-2PM\"]";

console.log(JSON.parse(timeSlots));

OR: 你可以简单地用单引号包裹字符串,这不需要转义双引号:

var timeSlots = '["11AM-12PM", "1PM-2PM"]';

console.log(JSON.parse(timeSlots));

【讨论】:

    【解决方案2】:

    终于找到解决办法了

    var timeSlots = "['11AM-12PM', '1PM-2PM']";
    timeSlots.replace(/'/g, '"');
    console.log(JSON.parse(timeSlots));
    

    【讨论】:

      【解决方案3】:

      试试这些

      var timeSlots = "[\"11AM-12PM\", \"1PM-2PM\"]";
      

      var timeSlots = '["11AM-12PM", "1PM-2PM"]';
      

      【讨论】:

        猜你喜欢
        • 2018-08-08
        • 2021-01-08
        • 1970-01-01
        • 2018-03-27
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 2021-08-28
        • 2016-08-29
        相关资源
        最近更新 更多