2013-03-20 3 views
-5

Я создал переменную JSON и разгладил ее в JSON. Но я не могу читать ценности. Я все пробовал. Но это не работает. Вот мой код JavaScript.Чтение JSON в Java Script

var graph='{"graphSpace":[{"rectangle":{"minX":0.0,"minY":0.0,"maxX":0.0,"maxY":0.0},"contents":"","rights":[],"lefts":[],"tops":[],"downs":[],"annotation":{"id":255,"type":"line"}],[{"rectangle":{"minX":174.0,"minY":87.0,"maxX":989.0,"maxY": 136.0},"contents":"Carter Brothers Fire u0026 Life Safety","rights":[{"id":59}],"lefts":[],"tops":[{"id":255}],"downs":[{"id":14},{"id":16},{"id":19},{"id":21},{"id":28},{"id":31},{"id":33},{"id":35},{"id":42},{"id":45},{"id":47},{"id":49},{"id":52},{"id":183},{"id":169},{"id":199},{"id":190},{"id":201},{"id":192},{"id":208},{"id":215},{"id":230},{"id":233},{"id":240},{"id":243},{"id":246}],"annotation":{"id":7,"type":"line"}},{"rectangle":{"minX":2073.0,"minY":92.0,"maxX":2327.0,"maxY":150.0},"contents":"Invoice","rights":[],"lefts":[{"id":7}],"tops":[{"id":7},{"id":255}],"downs":[{"id":67},{"id":70},{"id":72},{"id":74},{"id":76},{"id":100},{"id":102},{"id":105},{"id":108},{"id":111},{"id":114},{"id":135},{"id":160},{"id":151},{"id":162},{"id":153},{"id":264},{"id":280},{"id":302}],"annotation":{"id":59,"type":"line"}}]}'; 

Для вашего удобства я поместил данные в читаемом формате.

{ 
    "graphSpace": 
    [ 
     {"rectangle": 
      "{ "minX": 0.0, "minY": 0.0, "maxX": 0.0, "maxY":0.0}", 
     "contents":"", 
     "rights":"[]", 
     "lefts":"[]", 
     "tops":"[]", 
     "downs":"[]", 
     "annotation": 
      "{ "id": 255, "type": "line"}" 
    ], 
    [ 
     {"rectangle": 
      "{ "minX": 174.0, "minY": 87.0, "maxX": 989.0, "maxY": 136.0}", 
     "contents":"JSON u0026 JAVASCRIPT", 
     "rights":" 
      [{"id":59}]", 
     "lefts":"[]", 
     "tops":"[{"id":255}]", 
     "downs":" 
      [{"id":14},]", 
     "annotation": 
      "{ "id": 7, "type": "line"}" 
     }, 
     {"rectangle": 
      "{ "minX": 2073.0, "minY": 92.0, "maxX": 2327.0, "maxY":150.0}", 
     "contents":"JSON EXample", 
     "rights":"[]", 
     "lefts": 
      "[{"id":7}]", 
     "tops": 
      "[{"id":7},{"id":255}]", 
     "downs": 
      "[{"id":67},{"id":70},{"id":72},]", 
     "annotation": 
      "{"id": 59, "type": "line"}" 
     } 
    ] 
} 

Теперь я создаю переменную, которая будет хранить анализируемые данные. Затем я проверяю, хранится оно или нет. Поэтому я читаю первое значение и предупреждаю его.

var graphSpace=JSON.parse(graph); 
var minx = graphSpace[0].rectangle.minX; 
alert(minx); 

Но когда я открываю эту страницу JSP, я не могу увидеть это предупреждение. Какая ошибка здесь?

Обновление: Извините, что я забыл добавить первый ключ при копировании. Пожалуйста, отметьте это

+0

если это код, то у вас есть неправильное заклинание 'alert' –

+0

Oh! Извините, когда я набрал здесь, я допустил ошибку. В моем коде это правильно написано. – iCode

+1

Какая ошибка вы видите? каково значение, которое фактически присваивается 'graphSpace'? Это массив? Имеет ли он 0-й элемент? У этого элемента есть свойство .rectangle? Свойство * that * имеет свойство .minX? Перед публикацией такого вопроса нужно провести отладочную работу. Самая большая проблема может заключаться в том, что это недействительно JSON. – meagar

ответ

0

использовать jsonlint.com, чтобы исправить ваш json.com. После коррекции это будет так. Gve подходящее имя для уровня 1 и для ключа

{ 
    "LEVEL 1": [ 
     { 
      "rectangle": { 
       "minX": 0, 
       "minY": 0, 
       "maxX": 0, 
       "maxY": 0 
      }, 
      "contents": "", 
      "rights": "[]", 
      "lefts": "[]", 
      "tops": "[]", 
      "downs": "[]", 
      "annotation": { 
       "id": 255, 
       "type": "line" 
      } 
     } 
    ], 
    "LEVEL 11": [ 
     { 
      "rectangle": { 
       "minX": 174, 
       "minY": 87, 
       "maxX": 989, 
       "maxY": 136 
      }, 
      "contents": "JSON u0026 JAVASCRIPT", 
      "rights": { 
       "id": 59 
      }, 
      "lefts": "[]", 
      "tops": { 
       "id": 255 
      }, 
      "downs": { 
       "id": 14 
      }, 
      "annotation": { 
       "id": 7, 
       "type": "line" 
      } 
     }, 
     { 
      "rectangle": { 
       "minX": 2073, 
       "minY": 92, 
       "maxX": 2327, 
       "maxY": 150 
      }, 
      "contents": "JSON EXample", 
      "rights": "[]", 
      "lefts": { 
       "id": 7 
      }, 
      "tops": { 
       "id": 7 
      }, 
      "you2": { 
       "id": 255 
      }, 
      "downs": [ 
       { 
        "id": 67 
       }, 
       { 
        "id": 70 
       }, 
       { 
        "id": 72 
       } 
      ], 
      "annotation": { 
       "id": 59, 
       "type": "line" 
      } 
     } 
    ] 
} 
1

Это недопустимый формат. Удалите фигурные скобки, которые завернут ваш массив.

var graph='[{"rectangle":{"minX":0.0,"minY":0.0,"maxX":0.0,"maxY":0.0},"contents":"","rights":[],"lefts":[],"tops":[],"downs":[],"annotation":{"id":255,"type":"line"}],[{"rectangle":{"minX":174.0,"minY":87.0,"maxX":989.0,"maxY": 136.0},"contents":"Carter Brothers Fire u0026 Life Safety","rights":[{"id":59}],"lefts":[],"tops":[{"id":255}],"downs":[{"id":14},{"id":16},{"id":19},{"id":21},{"id":28},{"id":31},{"id":33},{"id":35},{"id":42},{"id":45},{"id":47},{"id":49},{"id":52},{"id":183},{"id":169},{"id":199},{"id":190},{"id":201},{"id":192},{"id":208},{"id":215},{"id":230},{"id":233},{"id":240},{"id":243},{"id":246}],"annotation":{"id":7,"type":"line"}},{"rectangle":{"minX":2073.0,"minY":92.0,"maxX":2327.0,"maxY":150.0},"contents":"Invoice","rights":[],"lefts":[{"id":7}],"tops":[{"id":7},{"id":255}],"downs":[{"id":67},{"id":70},{"id":72},{"id":74},{"id":76},{"id":100},{"id":102},{"id":105},{"id":108},{"id":111},{"id":114},{"id":135},{"id":160},{"id":151},{"id":162},{"id":153},{"id":264},{"id":280},{"id":302}],"annotation":{"id":59,"type":"line"}}]'; 

После этого все будет правильно.

+1

Вы уверены? не будет ли это делать два массива с запятой между ними, что недействительно? –

+0

Хороший улов InviS, есть еще несколько проблем с ним. – Chris

0

Этот формат недействителен. Первейшая {} является ненужным и удалить кавычки вокруг внедренного объекта как:

"rectangle": "{ "minX": 174.0, "minY": 87.0, "maxX": 989.0, "maxY": 136.0}", 

Вместо:

"rectangle": { "minX": 174.0, "minY": 87.0, "maxX": 989.0, "maxY": 136.0}, 
+1

* ... удалить кавычки вокруг имен переменных ... * Вы имеете в виду '' {[{rectangle: {minX: 0.0, minY: 0.0, ... '? –

+0

... Я имею в виду внутренние объекты. Им не нужны кавычки. –

1

Вы уверены, что ваш JSON является действительным?

Используйте этот сайт, чтобы проверить: http://jsonlint.com/

Это говорит мне есть проблема с JSON.

0

Ваш JSON недействителен. Свойства объектов в JSON должны быть указаны как пары name: value, но вы не сделали этого для самого внешнего объекта. Поскольку вам кажется, что это массив, я бы предложил изменить самые внешние фигурные скобки на квадратные скобки.

Смежные вопросы