JSON формат

JSON формат

JSON формат

JSON Това е текстов формат за обмен на данни, което означава, че е лесен за четене както от човек, така и от програма. Името му съответства на английския акроним на Описанието на обекта на JavaScript и е стандартизиран като ECMA-404. Въпреки че е формат, много близък по синтаксис до JavaScript, тъй като е много лесно да се обработва, за да кодирате обектни данни или да ги получите, той се използва и в много други езици за програмиране (C, C + +, Ява, Питон…) като алтернатива, например на XML, който има подобна цел, но тъй като включва повече метаинформация, изисква повече текст и следователно заема повече място, консумира повече честотна лента и изисква повече ресурси за кодиране и декодиране на информацията съдържа. JSON.

Съдържание

    Данните на обект, кодирани в JSON Те са затворени в скоби, различните свойства, включени в тях, са разделени със запетаи, а имената на свойствата предхождат стойността, от която са разделени с двоеточие.

    Очертание на синтаксиса на обект във формат JSON

    Имената на свойствата трябва да бъдат затворени в кавички с помощта на двойни кавички (въпреки че някои парсери ще поддържат единични кавички) и въпреки че някои специални знаци са разрешени за имена (като знаци за ударение), не се препоръчва да се избягват критериите на някои машини за анализ и да се избягва конфликти при използване на свойство, особено със синтаксис dot(object.property).

    В примера по-горе можете да видите обект, който има шест свойства с прости, числови, булеви или текстови стойности; но във формата JSON, свойствата могат също да придобият като стойност обект (включително „специалния обект“ null) или масив в допълнение към текстов низ (текст в кавички), число (в различни формати) или булева стойност (истина или невярно ).

    Както и с езика JavaScript (JSON е подмножество на JavaScript), за да изразят матрица, нейните стойности са оградени в квадратни скоби и разделени със запетаи. Най-простият случай е илюстриран в примера по-долу; Това е едномерен масив, вектор, съставен от числови стойности.

    En JavaScript Не е необходимо всички елементи на масива да са от един и същи тип, можете да смесите например текстови низове и числови стойности. Вектор, едномерен масив, може също да бъде един от елементите на друг масив, което позволява да се конструират многомерни масиви с променлива дължина. Следващият пример показва обект с три свойства: първото е двуизмерен масив с фиксирани дължини, второто е с променливи дължини, а третото е образувано от масив със стойности от различни типове.

    Следващият пример използва други обекти като стойности за свойствата на родителския обект. Няма ограничение за нивото на влагане, така че от своя страна обектите, които са стойности на свойствата на родителя, също могат да имат други обекти като свои стойности на свойства и т.н.

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

    Стандартните символи, присъстващи в повечето езици (подобно на C) са следните

    • регрес \b Код ASCII 8 (0x08)
    • Табулатор \t Код ASCII 9 (0x09) Обикновено се представя като HT (хоризонтален табулатор)
    • Нова линия \n Код ASCII 10 (0x0A) Обикновено се представя като LF (подаване на ред)
    • Нова страница \f Код ASCII 12 (0x0C) Обикновено се представя като FF (подаване на формуляр)
    • връщане \r Код ASCII 13 (0x0D) Обикновено се представя като CR (връщане на каретка)
    • Комилас \" Код ASCII 34 (0x22)
    • разделен бар \/ Код ASCII 57 (0x2F)
    • Наклонена черта \\ Код ASCII 134 (0x5C)
    • уникод код \uXXXX

    Получен от C (и свързани с Unix и други подобни, като напр 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 използвайки друг текстов формат. Най-използваното кодиране за разрешаване на този аспект е Base64 тъй като много езици имат библиотеки за преобразуване на информация в една или друга посока. Ако данните, които се манипулират, са предимно от този тип и/или не е необходимо човек да интерпретира информацията без програма, струва си да се обмисли дали форматът JSON е най-подходящо.

    Публикувай коментар

    Може да сте пропуснали