【问题标题】:SyntaxError: JSON.parse: expected property name or '}' while using highchartsSyntaxError: JSON.parse: 使用 highcharts 时的预期属性名称或“}”
【发布时间】:2013-03-29 07:32:18
【问题描述】:

我正在尝试使用 highcharts 实现折线图,我想在其中为特定点着色。

所以我使用以下语句。

JSON.parse("[{x: 1,y: 0},{x:2,y:5,marker:{fillColor:'red'}},{x:3,y:8}]");

将点 (2,5) 着色为红色。

但是,它显示错误为SyntaxError: JSON.parse: expected property name or '}'

【问题讨论】:

  • 注意:如果 JSON 的 String 实际上是这样的字面值,您可以跳过 JSON.parse() 并使用 JavaScript literals 来获得 ArrayObjects。
  • 更简单的复制方式就是{a:[]}
  • 顺便说一句,有 JSON5 库可以将该对象字符串解析为有效的 JSON5:github.com/aseemk/json5

标签: javascript json highcharts


【解决方案1】:

有效的 JSON 字符串需要要引用的属性名称。

这可以通过引用下面的属性名称来纠正:

JSON.parse('[{"x": 1, "y": 0}, {"x":2, "y":5, "marker": {"fillColor":"red"}}, {"x":3, "y":8}]');

【讨论】:

  • 还值得注意的是,任何字符串值也需要双引号而不是单引号。这让我和属性名称一样
  • 就我而言,我必须在里面加双引号,在外面加单引号。
【解决方案2】:

如前所述,必须引用 JSON 对象名称。所以 JSON.parse 将只解析那个字符串,有效的 JSON。

但是,如果您出于任何原因无法更改字符串的格式,您也可以使用可以接受您的语法的eval 函数对其进行解析。但是小心!这是一个很好的利用方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多