Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.02.2011, 15:24
Аспирант
Отправить личное сообщение для JSTalker Посмотреть профиль Найти все сообщения от JSTalker
 
Регистрация: 29.06.2009
Сообщений: 92

Как работать с 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?
Ответить с цитированием
  #2 (permalink)  
Старый 09.03.2011, 13:45
Аспирант
Отправить личное сообщение для JSTalker Посмотреть профиль Найти все сообщения от JSTalker
 
Регистрация: 29.06.2009
Сообщений: 92

Кто нибудь работал с 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.

Почему так?
Ответить с цитированием
  #3 (permalink)  
Старый 09.03.2011, 13:54
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

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

alert(typeof []);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XMLtoJSON: как удобнее? pashak AJAX и COMET 0 25.09.2010 03:12
Как заставить работать событие onLoad для embed slim-v Events/DOM/Window 0 16.09.2010 15:07
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
Как работать со startContainer, endContainer и подобным? Бобр Общие вопросы Javascript 6 06.02.2010 20:47
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56