我有Json数据,我试图在下面的小提琴中解析
但是它的投掷错误
Uncaught SyntaxError:位置15的JSON中出现意外的标记p
我无法在这里粘贴json,因为大尺寸请跟随小提琴
var varArray = JSON.parse(jsonData);
console.log(varArray);
小提琴
https://jsfiddle.net/ffeLtaa6/
任何建议?
答案 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()
函数上为父对象成员加倍。