【问题标题】:JSON Parse JavaScript [duplicate]JSON解析JavaScript [重复]
【发布时间】:2017-01-09 02:54:23
【问题描述】:

我正在尝试解析 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:位置 1 处 JSON 中的意外标记 o

我需要访问 X 和 Y 值。

【问题讨论】:

  • 您正在尝试解析对象而不是字符串.....var obj = { "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 ); ..或.....var 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 );

标签: javascript json parsing


【解决方案1】:

你可以直接访问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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 谢谢。一开始我忘了照顾 '。
    猜你喜欢
    • 2012-04-10
    • 2013-08-23
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 2020-07-19
    • 2013-08-04
    相关资源
    最近更新 更多