JSON解析JavaScript

JSON解析JavaScript,javascript,json,parsing,Javascript,Json,Parsing,我正在尝试解析一个JSON字符串 这是我的JSON字符串示例 { "className":"Rectangle", "data":{ "x":685, "y":283, "width":179, "height":169, "strokeWidth":5, "strokeColor":"#000", "fillColor":"rgba(224,224,224,0.28)" }, "

我正在尝试解析一个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);
下面是抛出的错误

未捕获的语法错误:JSON中位置1处的意外标记o


我需要访问X和Y值。

您可以直接访问X和Y值

var arr = { "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 x = arr.data.x;
var y=  arr.data.y

您可以直接访问x和y的值

var arr = { "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 x = arr.data.x;
var y=  arr.data.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

如上所述,您正在尝试读取一个对象,在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)将输出
矩形

您试图解析的对象不是字符串<代码>变量obj={“类名”:“矩形”,“数据”:{“x”:685,“y”:283,“宽度”:179,“高度”:169,“笔划宽度”:5,“笔划颜色”:“000”,“填充颜色”:“rgba(224224224,0.28)”,“id”:“c4c49b39-d0cd-f7c7-ea89-356753051de2”};console.log(obj.className)。或<代码>var obj=JSON.parse(“{”className:“Rectangle”,“data:“{”x“:685,“y“:283,“width”:179,“height”:169,“strokeWidth”:5,“strokeColor:“#000”,“fillColor:”rgba(224224224,0.28)”,“id:“c4c49b39-d0cd-f7c7-ea89-356753051de2”);console.log(obj.className)您正在尝试分析对象而不是字符串<代码>变量obj={“类名”:“矩形”,“数据”:{“x”:685,“y”:283,“宽度”:179,“高度”:169,“笔划宽度”:5,“笔划颜色”:“000”,“填充颜色”:“rgba(224224224,0.28)”,“id”:“c4c49b39-d0cd-f7c7-ea89-356753051de2”};console.log(obj.className)。或<代码>var obj=JSON.parse(“{”className:“Rectangle”,“data:“{”x“:685,“y“:283,“width”:179,“height”:169,“strokeWidth”:5,“strokeColor:“#000”,“fillColor:”rgba(224224224,0.28)”,“id:“c4c49b39-d0cd-f7c7-ea89-356753051de2”);console.log(obj.className)谢谢。一开始我忘了照顾你,谢谢。一开始我忘了照顾他。