JSON зберігає дані в об'єктах та масивах. Синтаксис JSON відображає як вони визначаються.
Об'єкти JSON
Об'єкт JSON — це невпорядкований набір пар ім'я/значення, вставлених між фігурними дужками { }.
У наступному приклад artistname — це ім'я, а Deep Purple — його значення.
<code data-language="javascript">{ "artistname" : "Deep Purple" }
Об'єкт може містити нуль або більше пар ім'я/значення. Декілька пар розділяються комами. Ось коректні об'єкти.
<code data-language="javascript">{ } { "artistname" : "Deep Purple" } { "artistname" : "Deep Purple", "formed" : "1968" } { "artistname" : "Deep Purple", "formed" : "1968", "origin" : "Хертфорд, Великобританія" }
У JSON ім'я — це рядок. Його значенням може бути об'єкт, масив, число, рядок, true, false або null.
У наведених вище прикладах значення є рядками.
Масив JSON
Масив JSON — це впорядкований набір значень, який дозволяє зберігати список значень. Масив починається з лівої квадратної дужки [і завершується правою квадратною дужкою]. Його значення поділяються комою.
Ось приклад масиву виконавців.
<code data-language="javascript">{ "artists" : [ { "artistname" : "Deep Purple", "formed" : "1968" }, { "artistname" : "Joe Satriani", "born" : "1956" }, { "artistname" : "Maroon 5", "formed" : "1994" } ] }
Пробіли
Ви можете використовувати пробіли, щоб зробити ваші JSON-документи більш читабельними. Фактично це узгоджується з більшістю (якщо не всіма) мовами програмування.
Можна додавати пробіли, табуляцію, перенесення рядків або символів для підвищення читання ваших файлів. Таким чином, можна написати так.
<code data-language="javascript">{ "artists" : [ { "artistname" : "Deep Purple", "formed" : "1968" }, { "artistname" : "Joe Satriani", "born" : "1956" }, { "artistname" : "Maroon 5", "formed" : "1994" } ] }
Або так.
<code data-language="javascript">{ "artists" : [ { "artistname" : "Deep Purple", "formed" : "1968" }, { "artistname" : "Joe Satriani", "born" : "1956" }, { "artistname" : "Maroon 5", "formed" : "1994" } ] }
Ці два приклади містять одні й ті самі дані та просте додавання пробілів на дані ніяк не впливає.
Однак, якщо в рядку додати пробіл всередині подвійних лапок , Це змінить дані.
Вкладені дані
Більшість JSON-файлів зберігають багато вкладених даних, що обумовлено їх структурою. Наприклад, у нас може бути масив виконавців, його ім'я — artists, а значення — масив, що містить відомості про різних виконавців. Кожен виконавець може мати свій масив альбомів, кожен з різною парою ім'я/значення.
<code data-language="javascript">{ "artists" : [ { "artistname" : "Deep Purple", "formed" : "1968", "albums" : [ { "albumname" : "Machine Head", "year" : "1972", "genre" : "Рок" }, { "albumname" : "Stormbringer", "year" : "1974", "genre" : "Рок" } ] } ] }
Щоб розширити цей приклад, візьмемо трьох виконавців.
<code data-language="javascript">{ " ;artists" : [ { "artistname" : "Deep Purple", "formed" : "1968", "albums" : [ { "albumname" : "Machine Head", "year" : "1972", "genre" : "Рок" }, { "albumname" : "Stormbringer", "year" : "1974", "genre" : "Рок" } ] }, { "artistname" : "Joe Satriani", "born" : "1956", "albums" : [ { "albumname" : "Flying in a Blue Dream", "year" : "1989", "genre" : "Інструментальний рок" }, { "albumname" : "The Extremist", "year" : "1992", "genre" : "Інструментальний рок" }, { "albumname" : "Shockwave Supernova", "year" : "2015", "genre" : "Інструментальний рок" } ] }, { "artistname" : "Snoop Dogg", "born" : "1971", "albums" : [ { "albumname" : "Tha Doggfather", "year" : "1996", "genre" : "Гангста-реп" }, { "albumname" : "Snoopified", "year" : "2005", "genre" : "Гангста-реп" } ] } ] }