2015-10-02 2 views

ответ

0

Для всех практических целей «JSON» имеет ровно одно значение, которое представляет собой строку , представляющую объект JavaScript, соответствующий определенному синтаксису.

JSON анализируется на объект JavaScript с использованием JSON.parse, а объект JavaScript преобразуется в строку JSON, используя JSON.stringify.

Проблема в том, что слишком многие люди попали в плохую привычку ссылаться на простые старые объекты JavaScript как на JSON. Это либо запутанно, либо небрежно, либо и то, и другое. {a: 1} - объект JS. '{"a": 1}' - строка JSON.

В том же ключе многие люди используют имена переменных, например json, для ссылки на объекты JavaScript, полученные из JSON. Например:

$.getJSON('foo.php') . then(function(json) { ... 

В приведенном выше случае, имя переменной json опрометчиво. Фактическая полезная нагрузка, возвращаемая с сервера, представляет собой строку JSON, но внутренне $.getJSON уже превратила это в простой старый объект JavaScript, который передается обработчику then. Поэтому было бы предпочтительно использовать имя переменной data, например.

Если библиотека использует термин «json» для обозначения вещей, которые не являются JSON, но на самом деле являются объектами JavaScript, это знак плохого дизайна, и я предлагаю оглянуться на другую библиотеку.

+0

Благодарим за разъяснение этого. Android использует JsonObject и известную в JOS библиотеку json использует JSON как тип (который действует как словарь, на который вы можете извлекать данные с помощью чего-то вроде jsonObject.get ("name ")' .. – eugene

Смежные вопросы