[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос про eval и JSON
program90
Подскажите, почему eval, получив текст JSON, преобразует его в объект? В справочнике написано, что eval только выполняет код. А структура данных это же не код.
И еще вопрос. Почему сериализованный объект в javascript представляется в виде json? Написано, что стандартной функции сериализации в javascript нет.



Спустя 6 минут, 7 секунд (12.01.2011 - 00:37) Игорь_Vasinsky написал(а):
хз. может по лучше в мануалах почитать....

Спустя 1 минута, 56 секунд (12.01.2011 - 00:39) glock18 написал(а):
Цитата (program90 @ 11.01.2011 - 21:31)
Подскажите, почему eval, получив текст JSON, преобразует его в объект? В справочнике написано, что eval только выполняет код. А структура данных это же не код.
И еще вопрос. Почему сериализованный объект в javascript представляется в виде json? Написано, что стандартной функции сериализации в javascript нет.


ну, в общем-то ты задал два вопроса. и это тот случай, когда второй вопрос содержит в своей формулировке ответ на первый

Спустя 6 минут, 25 секунд (12.01.2011 - 00:46) glock18 написал(а):
подумал, что может не так еще понятно

json - javascript object notation - естественно, что javascript его должен понимать.

а то что eval('{key1: "value1", key2: "val2"}') вернет объект... ну, представь, что вместо объекта, описанного json, там будет число, и вместо объекта eval вернет его.

честно говоря, не понимаю, почему такой вопрос вообще возник. вроде как очевидно должно быть, если иметь ввиду формат записи объектов/массивов/и прочих данных в javascript и суть функции eval.

Спустя 1 час, 46 минут, 6 секунд (12.01.2011 - 02:32) program90 написал(а):
А откуда этот формат взялся в javascript? Вообще объект хранится в памяти компилятора, интерпретатора или работающей проги в специальном формате зависящем от компилятора. А не в текстовом формате. Т.е. в таком виде как JSON он в памяти вряд ли хранится, с запятыми, кавычками, и скобками. А функций сериализации как в php вроде бы нет.

Спустя 5 часов, 4 минуты, 4 секунды (12.01.2011 - 07:36) glock18 написал(а):
Цитата (program90 @ 11.01.2011 - 23:32)
А откуда этот формат взялся в javascript?


ну даешь... надо его стало, вот и сделали его - надо ведь как-то описывать сложные объекты.

Цитата (program90 @ 11.01.2011 - 23:32)
Вообще объект хранится в памяти компилятора, интерпретатора или работающей проги в специальном формате зависящем от компилятора. А не в текстовом формате. Т.е. в таком виде как JSON он в памяти вряд ли хранится, с запятыми, кавычками, и скобками.


скажешь тоже... в php массивы тоже не в таком формате хранятся:
array('key1' => 'value1', 'key2' => 'value2')


тем не менее, это не мешает описывать массив в таком формате.

Спустя 1 час, 40 минут, 25 секунд (12.01.2011 - 09:16) program90 написал(а):
glock18
Т.е. в javascript объект object можно задать не только так - new object(), object.color=green? Но еще можно задавать текстом? вроде - new object({color: "red", weight: "100gr"}). Просто ни разу не видел в учебнике этого. Видно недописали.

Спустя 15 минут, 47 секунд (12.01.2011 - 09:32) Michael написал(а):
program90, в javascript объект также так задается:
var obj = {};

массив
var arr = [1,2,3];

По умному называются - литералы.

Спустя 7 часов, 6 минут, 7 секунд (12.01.2011 - 16:38) program90 написал(а):
Michael
Спасибо. Нашел ссылку http://habrahabr.ru/blogs/javascript/17613/. (не знаю можно ли выложить здесь)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.