JSON – текстовый формат, записанный при помощи объектной нотации JavaScript, который используется для хранения и обмена данными.
Формат JSON был разработан Дугласом Крокфордом.
Что такое JSON?
- JSON – сокращение от англ. JavaScript Object Notation
- JSON это легковесный, взаимозаменяемый формат данных
- JSON независим от языка*
- JSON "самоописателен" и прост для понимания
* Хотя синтаксис JSON основан на синтаксисе записи объектов JavaScript, однако сам формат JSON имеет только текстовую форму. Программный код для чтения и генерирования данных JSON может быть написан на любом языке программирования.
Пример JSON
В следующем примере на JSON определяется объект employees: массив из 3 записей (объектов):
{
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]
}
Обмен данными
В обмене между браузером и сервером могут участвовать только данные в текстовом формате.
JSON как раз и является таким текстовым форматом.
При этом любой объект JavaScript можно преобразовать в формат JSON, а затем отправить на сервер.
Также, полученные с сервера данные в формате JSON можно преобразовать в объекты JavaScript.
Таким образом, мы можем работать с данными, как с объектами JavaScript без сложных парсинга и преобразования.
Отправка данных
Если у вас есть данные в виде объекта JavaScript, то вы можете преобразовать их в формат JSON и отправить на сервер:
var myObj = { "name":"John", "age":31, "city":"New York" };
var myJSON = JSON.stringify(myObj);
window.location = "demo_json.php?x=" + myJSON;
Подробнее о функции JSON.stringify() вы узнаете далее в этом учебнике.
Получение данных
Если вы получили данные в формате JSON, то вы можете преобразовать их в объект JavaScript:
var myJSON = '{ "name":"John", "age":31, "city":"New York" }';
var myObj = JSON.parse(myJSON);
document.getElementById("demo").innerHTML = myObj.name;
Подробнее о функции JSON.parse() вы узнаете далее в этом учебнике.
Хранение данных
Когда необходимо сохранить данные, то независимо от того, где происходит сохранение, данные должны быть в некоем формате. Текстовый формат всегда был и остается до сих пор одним из допустимых форматов данных.
JSON позволяет сохранять объекты JavaScript в виде текста.
В следующем примере данные сохраняются в локальном хранилище:
// Сохранение данных:
myObj = { "name":"John", "age":31, "city":"New York" };
myJSON = JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// Извлечение данных:
text = localStorage.getItem("testJSON");
obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
Зачем нужен JSON?
Так как формат JSON — это исключительно текст, его легко можно посылать на сервер и обратно. При этом данные в этом формате могут использоваться любым языком программирования.
В JavaScript есть встроенная функция, которая позволяет преобразовывать строку в формате JSON в родные объекты JavaScript: JSON.parse().
Таким образом, если вы получили от сервера данные в формате JSON, вы можете использовать их как любой другой объект JavaScript.