JS JSON

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.