This question already has answers here:
Parsing JSON giving “unexpected token o” error [duplicate]
(8个答案)
3年前关闭。
我正在尝试解析JSON字符串
这是我的示例JSON字符串;
这是我要解析的代码;
这是抛出的错误
未捕获到的SyntaxError:JSON中位置1处的意外令牌o
我需要访问X和Y值。
然后
(8个答案)
3年前关闭。
我正在尝试解析JSON字符串
这是我的示例JSON字符串;
{
"className":"Rectangle",
"data":{
"x":685,
"y":283,
"width":179,
"height":169,
"strokeWidth":5,
"strokeColor":"#000",
"fillColor":"rgba(224,224,224,0.28)"
},
"id":"c4c49b39-d0cd-f7c7-ea89-356753051de2"
}
这是我要解析的代码;
var obj;
obj = JSON.parse({
"className": "Rectangle",
"data": {
"x": 685,
"y": 283,
"width": 179,
"height": 169,
"strokeWidth": 5,
"strokeColor": "#000",
"fillColor": "rgba(224,224,224,0.28)"
},
"id": "c4c49b39-d0cd-f7c7-ea89-356753051de2"
});
console.log(obj.className);
这是抛出的错误
未捕获到的SyntaxError:JSON中位置1处的意外令牌o
我需要访问X和Y值。
最佳答案
如前所述,您正在尝试读取对象,在javascript中var obj = {}
创建一个对象,而var arr = []
创建一个数组。
但是:如果您必须解析json,只需在开头和结尾放置'
即可告诉解析器它是一个json字符串:
obj = JSON.parse( '{ "className": "Rectangle", "data": { "x": 685, "y": 283, "width": 179, "height": 169, "strokeWidth": 5, "strokeColor": "#000", "fillColor": "rgba(224,224,224,0.28)" }, "id": "c4c49b39-d0cd-f7c7-ea89-356753051de2" }' );
然后
console.log( obj.className );
将输出Rectangle
。