【问题标题】:Fail to parse array of string using JSON.parse [duplicate]无法使用 JSON.parse 解析字符串数组 [重复]
【发布时间】:2018-05-24 12:17:06
【问题描述】:

这段代码:

JSON.parse("['Testing avionics, electrical and mission wiring, verifying the correct installation of cabling, solving harness']")

返回此错误:

VM2642:1 Uncaught SyntaxError: Unexpected token ' in JSON at position 1
    at JSON.parse (<anonymous>)
    at <anonymous>:1:6

但是这段代码完美运行:

var arr = ['Testing avionics, electrical and mission wiring, verifying the correct installation of cabling, solving harness']

那么有没有比 JSON 更好的解析方式呢?我看到的唯一解决方案是制作自己的解析器。

我正在使用谷歌浏览器 v 66.0.3359.181

【问题讨论】:

  • JSON 需要双引号,而不是单引号。
  • JSON.parse('["Testing avionics, electrical and mission wiring, verifying the correct installation of cabling, solving harness"]') 可以工作
  • JSON 使用双引号 (") 将字符串括起来。您的输入不是有效的 JSON。
  • “但这段代码运行良好:” -- 该代码是 JavaScript,而不是 JSON。 JSON 是 JavaScript 的子集,用单引号括起来的字符串是 JavaScript,但不是 JSON 的一部分。

标签: javascript json


【解决方案1】:

无需编写自己的解析器。在 javascript 双引号中,json 是标准的 json 格式。因此,您可以在 json 中使用双引号并将其包裹在单引号中,以便将其解析为 valid JSON

var arr = JSON.parse('["Testing avionics, electrical and mission wiring, verifying the correct installation of cabling, solving harness"]');
console.log(arr);

【讨论】:

  • 对不起,它没有被标记为重复
  • 不能轻易改变简单的引用,我要自己做解析器。不知道我是否应该将我的问题标记为重复,另一个是关于 JQuery(即使它是相同的)。
猜你喜欢
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 2013-04-27
相关资源
最近更新 更多