Цитата:
В JS нет ассоциативных массивов, но их можно представить как объекты. Именно как объект они пакуются в JSON, по синтаксису литеральной нотации. Поэтому, если на сервере выполнить вывод json-строки в тег script, то клиент получит корректный JS объект. Тоже самое и с массивом. Индексные массивы будут упакованы в json ровно также, как в JS - [...]. Вот почему "хотя не обрамлена ..." выполняется без ругани, так как первый символ в json строке корректный. Но json, это не обязательно массив в него упакованный, в него можно упаковать и строки: JSON.parse('<p>txt</p>') - ошибка, частый случай при ajax запросах. JSON.parse('"<p>txt</p>"') - получили требуемое И это мы, представляя строковые значения можем использовать комбинации двойные в одинарных или наоборот, или экранирование. Но по факту это будут строки с двойными в двойных, это можно даже в отладчике наблюдать. Но это не так важно, будь определено синтаксисом помещать в косые, пусть помещает, важно что и как json строка представляет и использовать эту строку по полной программе. :) |
Цитата:
Значит любая строка может как соответствовать формату, так и нет. Цитата:
Цитата:
Спасибо :) |
Цитата:
Ну тогда на закуску - валидным json могут быть integer, float, булевы значения. Например на клиенте вот такое alert(JSON.parse(123)) не является ошибкой и будет исполнено. Но не обязательно все декодеры воспримут такой json как валидный, так как нет однозначной спецификации по данному вопросу. |
Часовой пояс GMT +3, время: 02:48. |