Что такое json, можно ли объяснить это новичку?

Другое различие между Java и C++, то, что в C++, иерархии пространства имен не нужно Маху расположение файловой системы. Таким образом, я склонен помещать всю допускающую повторное использование библиотеку в единое пространство имен и подсистемы в библиотеке в подкаталогах:

#include "lib/module1.h"
#include "lib/module2.h"

lib::class1 *v = new lib::class1();

я только поместил бы подсистемы во вложенные пространства имен, если бы была возможность конфликта имен.

5
задан Mask 8 November 2009 в 09:53
поделиться

5 ответов

JSON - это способ обмена данными (обычно между браузером и сервером).

JavaScript позволяет двумя способами хранить коллекции значений:

//arrays:
[value, value, value]
//objects:
{key:value, key:value, key:value}

В какой-то момент гуру известный как Дуг понял, что обычно наиболее эффективно отправлять данные в JavaScript, уже настроенный как объект. [Вместо того, чтобы PHP отправлял строки с разделителями-запятыми, пост-данные, XML или даже HTML, все из которых должны быть тщательно проанализированы с помощью JavaScript].

Он назвал эту идею JSON, написал для нее спецификацию , и появился стандарт.

Например, предположим, что ваш сценарий login.php должен возвращать имя пользователя, общее количество сообщений и количество дней с момента регистрации:

//XML
"<xml..><details>\
    <user>Jim</user><posts>239</posts><since>Jan09</since>\
</details>"
//POSTData
"user=Jim&posts=239&since=Jan09"
//JSON
"{user:'Jim', posts:239, since:'Jan09'}"

Последний из них можно легко проанализировать с помощью JS (используя eval ), и детали можно использовать интуитивно:

var user = details.user;

РЕДАКТИРОВАТЬ:

Правильно было отмечено, что для правильного JSON, Это было сделано для того, чтобы JS не хрипел по зарезервированным ключевым словам (в JS нельзя использовать определенные слова, такие как class , если они не указаны в кавычках. Итак, {class: 'mike'} не может использоваться).

Также следует отметить, что PHP 5.2+ имеет функции, которые можно использовать для создания или анализа JSON:

<?php
    $arr = array ('a'=>'ay','b'=>'bee','c'=>'cee');
    echo json_encode($arr); //outputs {"a":"ay","b":"bee","c":"cee"}
?>

Функция json_ decode будет работать ТОЛЬКО, если JSON действителен, поэтому иногда важно правильно заключить эти двойные кавычки.

19
ответ дан 18 December 2019 в 05:29
поделиться

По сути, это способ описания объектов в тексте - текстовый формат сериализации. Однако прелесть этого в том, что это также обычный JavaScript. Синтаксис JavaScript позволяет инициализировать объекты в довольно кратком формате, и этот формат довольно легко сгенерировать / проанализировать и на других языках.

Таким образом, вы получаете «встроенную» десериализацию в JavaScript (т.е. вы можете просто интерпретировать текст как код 1 ) без дополнительных библиотек, и другие платформы могут создавать его, обычно с помощью библиотеки. (Обычно веб-сервер генерирует JSON для интерпретации браузером.)


1 Конечно, предполагается, что вы полностью доверяете своему источнику данных - выполнение произвольного текста в виде кода довольно опасно с точки зрения безопасности.

12
ответ дан 18 December 2019 в 05:29
поделиться

JSON - это исходный код Javascript, который объявляет структуру данных, обычно отправляемую веб-сервером в браузер. Браузер запускает код через обычный синтаксический анализатор javascript, и выскакивает структура данных.

Объявление Javascript может выглядеть так:

var myvar = {"column1": "valuie1"};
            ^^^^^^^^^^^^^^^^^^^^^^

Часть, подчеркнутая ^^^, стала известной как JSON.

Вначале какой-то Javascript мог захватить текст с сервера и проанализировать его следующим образом:

var myvar = eval('(' + textfromserver + ')');

Поскольку eval опасен, в настоящее время его чаще используют, например:

var myObject = JSON.parse(myJSONtext);

Это хак, который так много людей сочли полезным, что сделали его стандарт. См. эту страницу википедии для более подробного объяснения.

3
ответ дан 18 December 2019 в 05:29
поделиться

JSON - это исходный код Javascript, который создает структуру данных.

1
ответ дан 18 December 2019 в 05:29
поделиться

Я постараюсь сделать это проще. Если вы хоть немного знакомы с XML, то в принципе он похож на XML в том смысле, что хранит данные в удобном для чтения виде как для людей, так и для программ. Он обозначен как «формат обмена данными», потому что вы увидите, что он используется в качестве посредника для перемещения данных между одной программой и другой.

Например, у вас может быть определенная база данных, из которой вы хотите, чтобы другие брали информацию и использовали ее. в собственной программе. Вместо того, чтобы предоставлять им полный доступ к базе данных, вы можете ограничить их доступ, написав какой-то слой JSON. После этого люди могут получить доступ к JSON так же, как через RSS-канал. Пример из жизни: Yahoo предоставляет уровень JSON для своей поисковой системы, чтобы люди могли писать виджеты рабочего стола (или что-то еще), которые могут запускать поиск в Yahoo и получать результаты, отправляемые непосредственно на виджеты рабочего стола.

Уродливая альтернатива использованию чего-то вроде JSON может быть ваша программа получает HTML-содержимое веб-страницы и каким-то образом находит нужную вам информацию. (А если HTML-макет веб-сайта изменится, вам придется изменить свою программу.)

0
ответ дан 18 December 2019 в 05:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: