Формат JSON

Формат JSON

Формат JSON

JSON Це текстовий формат обміну даними, тобто його легко читати як для людини, так і для програми. Його назва відповідає англійській абревіатурі of Позначення об'єкта JavaScript і стандартизований як ECMA-404. Хоча це формат, дуже близький за синтаксисом JavaScript, оскільки його дуже легко обробити для кодування даних об’єкта або отримати їх, він також використовується в багатьох інших мовах програмування (C, C + +, Java, Python…) як альтернатива, наприклад, XML, який має подібну мету, але, оскільки він містить більше метаінформації, вимагає більше тексту і, отже, займає більше місця, споживає більше пропускної здатності та вимагає більше ресурсів для кодування та декодування інформації це містить. JSON.

Зміст

    Дані об’єкта, закодовані в JSON Вони взяті в дужки, різні властивості, що входять до них, розділені комами, а назви властивостей передують значенню, від якого вони відокремлені двокрапкою.

    Схема синтаксису об’єкта у форматі JSON

    Назви властивостей потрібно брати в лапки з використанням подвійних лапок (хоча деякі аналізатори підтримують одинарні лапки), і хоча деякі спеціальні символи дозволені для імен (наприклад, знаки наголосу), не рекомендується уникати критеріїв деяких механізмів аналізу та уникати конфлікти під час використання властивості, особливо з синтаксисом dot(object.property).

    У прикладі вище ви бачите об’єкт, який має шість властивостей із простими, числовими, логічними чи текстовими значеннями; але у форматі JSON, властивості також можуть отримувати як значення об’єкт (включаючи «спеціальний об’єкт» null) або масив на додаток до текстового рядка (текст у лапках), числа (у різних форматах) або логічного значення (true або false). ).

    Як і з мовою JavaScript (JSON є підмножиною JavaScript), щоб виразити матрицю, її значення беруть у квадратні дужки та відокремлюють комами. Найпростіший випадок проілюстрований у прикладі нижче; Це одновимірний масив, вектор, що складається з числових значень.

    En JavaScript Не обов'язково, щоб усі елементи масиву були одного типу, можна змішувати, наприклад, текстові рядки та числові значення. Вектор, одновимірний масив, також може бути одним з елементів іншого масиву, дозволяючи будувати багатовимірні масиви змінної довжини. У наступному прикладі показано об’єкт із трьома властивостями: перша — двовимірний масив фіксованої довжини, друга — змінної довжини, а третя — утворена масивом із значеннями різних типів.

    У наступному прикладі використовуються інші об’єкти як значення для властивостей батьківського об’єкта. Немає обмежень на рівень вкладеності, тому, у свою чергу, об’єкти, які є значеннями властивостей батьківського, також можуть мати інші об’єкти як значення властивостей тощо.

    Так само, як це буває з JavaScript, escape-коди використовуються для включення певних символів у текстовий рядок. Найбільш загальним способом є використання кодів Unicode, виражених за допомогою панелі виведення, літери u та чотирьох шістнадцяткових цифр у форматі "\u263A" наприклад, посилатися на ☺.

    Стандартні символи, присутні в більшості мов (подібних до C), такі

    • Відновлення \b Код ASCII 8 (0х08)
    • Табулятор \t Код ASCII 9 (0x09) Зазвичай представлено як HT (горизонтальний табулятор)
    • Нова лінія \n Код ASCII 10 (0x0A) Зазвичай позначається як LF (переведення рядка)
    • Нова сторінка \f Код ASCII 12 (0x0C) Зазвичай представляється як FF (подача форми)
    • Повернення \r Код ASCII 13 (0x0D) Зазвичай представляється як CR (повернення каретки)
    • Цитати \" Код ASCII 34 (0х22)
    • роздільна планка \/ Код ASCII 57 (0x2F)
    • Зворотна коса риска \\ Код ASCII 134 (0x5C)
    • код Юнікод \uXXXX

    Походить з C (та пов'язані з Юнекс і тому подібне, наприклад GNU / Linux) кінець рядка зазвичай позначається символом \n і це той, який потрібно вибрати JSON але цікаво пам'ятати, що деякі операційні системи віддають перевагу іншим альтернативам. Windows зазвичай представляє з \r\n закінчення рядків і Mac OS (до OS \r

    Щодо числового формату, посилання також є JavaScript. Десятковий роздільник крапка, тире (ASCII 45 0x2D) використовується як негативний знак і позначення в експоненціальній формі (Наукова нотація) використовує E як індикатор (який може бути великим або нижнім регістром)

    Як я вже сказав на початку, для використання даних, які будуть отримані у вигляді тексту, різні мови програмування мають функції аналізу та призначення. У наступному прикладі показано, як вони будуть використані в JavaScript. Щоб мати можливість використовувати його з консолі, включено призначення даних JSON Щоб уникнути можливих помилок залежно від стандарту ECMA, який використовує перекладач JavaScript зроблено призначення об'єкта JSON в один рядок. Випуск 6 2016 року (ECMA-262) підтримує багаторядкові рядки, видання 5 (до 2011) потребує додавання коду екранування \ а в попередніх ви повинні розв’язувати її вручну або використовувати один рядок.

    Попередження, щоб не заплутати нових користувачів JavaScript. Всередині коду JavaScript Для створення об’єкта необов’язково використовувати текстовий рядок, у попередньому прикладі він використовується для моделювання даних, які надходять, наприклад, із сервера. Щоб призначити об’єкт змінній, щось на зразок:

    Цей об’єкт можна перетворити на текст, наприклад, за допомогою функції stringify наступним чином:

    Формат JSON Він досить гнучкий, але головним чином тому, що він заснований на тексті, щоб бути зрозумілим людині, він має деякі недоліки. По-перше, він потребує більше пам’яті та споживає більше пропускної здатності, ніж це необхідно. У попередніх прикладах використовувався формат, спрямований на те, щоб бути більш читабельним, ніж економним, тому вони не є прикладом економії, навіть незважаючи на те, що існує багато елементів формату (дужки, дужки, лапки...), які продовжуватимуть споживати ресурси порівняно з інформацією, представленою в необробленому вигляді.

    Друга проблема виникає при роботі з суто двійковими даними (наприклад, зображеннями). При роботі з невеликими порціями її можна вирішити за допомогою того, що було пояснено для вирішення форматування спеціальних символів, але якщо мова йде про кодування інформації певних розмірів, необхідно буде вставити його в формат JSON використовуючи інший текстовий формат. Найбільш використовуване кодування для вирішення цього аспекту База64 оскільки багато мов мають бібліотеки для перетворення інформації в тому чи іншому напрямку. Якщо дані, якими маніпулюють, є переважно такого типу та/або людині не потрібно інтерпретувати інформацію без програми, варто розглянути, чи формат JSON є найбільш підходящим.

    Дати коментар

    Можливо, ви пропустили