未捕获的SyntaxError:位于15的JSON中的意外标记p

时间:2017-05-24 13:48:59

标签: javascript json

我有Json数据,我试图在下面的小提琴中解析

但是它的投掷错误

  

Uncaught SyntaxError:位置15的JSON中出现意外的标记p

我无法在这里粘贴json,因为大尺寸请跟随小提琴

var varArray = JSON.parse(jsonData);

console.log(varArray);

小提琴

https://jsfiddle.net/ffeLtaa6/

任何建议?

2 个答案:

答案 0 :(得分:3)

您错误地将JSON的部分包装在引号中

[{"pricing":"{\"price\": .... 
            ^
           This shouldn't be here

...

.... \"standingCharge\": \"y\"}}"}]
                                ^
                               This shouldn't be here

或者,也许您应该将该部分包裹起来,但是您需要正确地逃避该部分内的所有反斜杠,即\\而不仅仅是\
在这种情况下,当你执行JSON.parse(jsonData)时,你会得到一个对象(在数组中),它们都有一个属性pricing,其值本身就是一个JSON字符串。

答案 1 :(得分:1)

看起来你的JSON数据的对象用引号括起来。

在第15位接受错误;由parse()解释到该点的字符串是: [{"pricing":"{"

此时,您的解析函数正在寻找逗号以继续或结束括号以完成此对象。

现在,如果您将字符串跳到位置3312,您将看到字符序列}}"}。最后两个括号在最开始时匹配。

如果您希望字符串位于" pricing"或[{"pricing":"{ ... }"}],如果您希望对象代表该字符串,则字符串的格式应为[{"pricing":{" ... "}}]

看看你是如何构造JSON-ifying的对象,我感觉你可能会在stringify()函数上为父对象成员加倍。