Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.02.2018, 05:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Nexus
значение переменной json - вполне корректная строка формата JSON
Это как понять?

В JS нет ассоциативных массивов, но их можно представить как объекты. Именно как объект они пакуются в JSON, по синтаксису литеральной нотации. Поэтому, если на сервере выполнить вывод json-строки в тег script, то клиент получит корректный JS объект. Тоже самое и с массивом. Индексные массивы будут упакованы в json ровно также, как в JS - [...].

Вот почему "хотя не обрамлена ..." выполняется без ругани, так как первый символ в json строке корректный. Но json, это не обязательно массив в него упакованный, в него можно упаковать и строки:

JSON.parse('<p>txt</p>') - ошибка, частый случай при ajax запросах.
JSON.parse('"<p>txt</p>"') - получили требуемое

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

Но это не так важно, будь определено синтаксисом помещать в косые, пусть помещает, важно что и как json строка представляет и использовать эту строку по полной программе.
Ответить с цитированием
  #12 (permalink)  
Старый 03.02.2018, 11:46
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,796

Сообщение от laimas
Это как понять?
JSON - текстовый формат обмена данными © wiki
Значит любая строка может как соответствовать формату, так и нет.
Сообщение от Nexus
значение переменной json - вполне корректная строка формата JSON
Т.е. значение переменной json - строка, которая соответствует формату JSON.

Сообщение от laimas
Вот почему "хотя не обрамлена ..." выполняется без ругани, так как первый символ в json строке корректный. Но json, это не обязательно массив в него упакованный, в него можно упаковать и строки
Теперь понял, что вы имели ввиду.
Спасибо
Ответить с цитированием
  #13 (permalink)  
Старый 03.02.2018, 12:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Nexus
Значит любая строка может как соответствовать формату, так и нет.
Как все запутано. Коли речь идет о json, значит либо этот формат, либо ошибка формата, а не любая строка. Иначе я понял, что речь о json в json.

Ну тогда на закуску - валидным json могут быть integer, float, булевы значения. Например на клиенте вот такое alert(JSON.parse(123)) не является ошибкой и будет исполнено. Но не обязательно все декодеры воспримут такой json как валидный, так как нет однозначной спецификации по данному вопросу.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести значение выбранного селекта в блок? And5 Events/DOM/Window 23 11.09.2013 18:32
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как вывести дату, чтобы не повторять скрипт пару раз xXapokalypsesXx Общие вопросы Javascript 10 27.06.2013 13:43
как вывести сообщение только когда селект не выбран imediasun1 Элементы интерфейса 5 11.05.2013 17:40
Как вывести возвращаемое функцией значение не через модальное окно? Bandicoot Общие вопросы Javascript 1 10.03.2011 18:34