2016-09-01 3 views
0

Я пытаюсь разобрать строку JSONJSON Parse JavaScript

Вот моя примерная строка 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); 

Здесь ошибка брошена

Uncaught SyntaxError: Unexpected token o in JSON at position 1

Мне нужно получить доступ к X и Y значения.

+4

Вы пытаетесь разобрать объект, а не строку ..... '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); '..or .....' var obj = JSON.parse ('{"className": "Rectangle", "data": {"x": 685, "y" : 283, «ширина»: 179, «высота»: 169, «strokeWidth»: 5, «strokeColor»: «# 000», «fillColor»: «rgba (224,224,224,0.28)»}, «id»: «c4c49b39 -d0cd-f7c7-ea89-356753051de2 "} '); console.log (obj.className); ' –

ответ

1

Как уже говорилось, вы пытаетесь прочитать объект, в 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.

+1

Спасибо. Я забыл позаботиться о «в начале». – NewPHPer

2

Вы можете получить прямой доступ значение х и у

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 
Смежные вопросы