Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как работать с JSON? (https://javascript.ru/forum/misc/15163-kak-rabotat-s-json.html)

JSTalker 15.02.2011 15:24

Как работать с JSON?
 
Здравствуйте.
Такой вопрос.
Как работать с JSON-объектом, после того, как получил его и распарсил?
Необходимо на его основе рисовать рекламные блоки в открытых окнах.
JSON-объект вида:
Цитата:

[ { “title” : “Google.com”, “x” : 10, “y” : 15, “width” : 200, “height” : 100, “color” : “#FFFFFF”, “image” :“http://www.ru-iphone.com/files/img_1...le_logo.jpg”, “text” : “Лучший поисковик всех времён и народов” }, … ]
Нужно ли проверять на JSON-истость строку, полученную из textarea, перед тем, как делать JSON.parse(). Стоит ли мне применять опциональную функцию reviver?

JSTalker 09.03.2011 13:45

Кто нибудь работал с JSON?

Тезис:
Как проверить строку из поля TextArea на то, что это JSON, и что он имеет нужную мне структуру и свойства я научился.

Вопрос:
А если в textarea введены несколько "JSON-объектов" в виде массива:
[
    {
     "color":red,
     "doors":4,
     "paidFor":true
    },
    {
     "color":white,
     "doors":3,
     "paidFor":true
    }
]


Как их разделить и проверять по одиночке?

Я использую утилитку Дугласа Крокфорда. Там в описании функции-парсера в json2.js написан следующий комментарий:

Цитата:

JSON.parse(text, reviver)
This method parses a JSON text to produce an object or array. It can throw a SyntaxError exception.
Однако, когда я скармливаю этому парсеру массив, указанный выше, и проверяю алертом его тип:
var json_array = JSON.parse(txtArea.value);
alert(typeof json_array);


он выдает "Object"!,
а когда просто вызываю алертом:
alert(typeof json_array);


он выдает [object Object],[object Object]

Хотя по мне, так должен выдавать тип array.

Почему так?

Matre 09.03.2011 13:54

typeof вообще никогда не даёт array.

alert(typeof []);


Часовой пояс GMT +3, время: 23:25.