Галоўная > JSON, JSONL, JSONB, JSONP - такія падобныя і такія розныя

JSON, JSONL, JSONB, JSONP - такія падобныя і такія розныя

JSON
JSONL
JSONB
JSONP

Уступ

На днях я сутыкнуўся з чарговым акронімам вытворным ад JSON, і чарговы раз падумаў - "зноў нейкую лухту прыцягнулі, чым вам звычайны JSON не падыходзіць" Але цікаўнасць узяла верх і я правёў невялікае "даследванне" пра ўсе гэтыя словы: JSON, JSONL, JSONB, JSONP

Разглядаць кожны з фарматаў будзем па трох параметрах - што ен сабоў увасабляе, дзе выкарыстоўваецца, як ён працуе (недахопы/перавагі).

JSON (JavaScript Object Notation)

Азначэнне: JSON - гэта лёгкі фармат абмену дадзенымі, які лёгка чытаць і пісаць людзям і лёгка аналізаваць і генераваць машынам. Ён пабудаваны на двух структурах: калекцыі пар назва/значэнне (аб'ект у моўных праграмаваннях) і упарадкаванага спісу значэнняў (масіў).

Выпадкі выкарыстання: JSON шырока выкарыстоўваецца для перадачы дадзеных у вэб-дадатках паміж кліентамі і серверамі. Гэта аснова большасці REST API, што дазваляе лёгка абмяняцца дадзенымі.

Праца: Хоць JSON эфектыўны для абмену дадзенымі, яго тэкставая прырода азначае, што ён можа не быць самым эфектыўным фарматам па аб'ёме або хуткасці для вялікіх аб'ёмаў дадзеных.

Прыклад:

{
  "імя": "Джон Доў",
  "узрост": 30,
  "электронная пошта": "johndoe@example.com",
  "падпісаны": true
}

JSONB (Binary JSON)

Азначэнне: JSONB - гэта бінарны фармат, які захоўвае дадзеныя JSON у дэкампрэсаваным бінарным фармаце. Даступны ў базах дадзеных, такіх як PostgreSQL, ён дазваляе больш эфектыўна захоўваць, атрымліваць і запрошваць аперацыі над дадзенымі JSON.

Выпадкі выкарыстання: JSONB ідэальна падыходзіць для захоўвання дадзеных JSON у базах дадзеных, дзе вам трэба часта атрымліваць доступ і маніпуляваць структурай JSON, такімі як фільтрацыя, пошук у палях JSON або абнаўленне частак дакумента JSON.

Праца: JSONB прапануе значныя перавагі ў працы ў параўнанні з простым тэкстам JSON, уключаючы высокую прадукцыйнасць запытаў дзякуючы яго бінарнай прыродзе, якая дазваляе індэксаванне.Недахопам з'яўляецца некалькі больш высокі кошт захоўвання.

Прыклад:

CREATE TABLE users (
    id serial PRIMARY KEY,
    profile JSONB
);

INSERT INTO users (profile)
VALUES ('{"імя": "Джон Доў", "узрост": 30, "электронная пошта": "johndoe@example.com", "падпісаны": true}');

SELECT profile ->> 'імя' AS user_name FROM users WHERE profile ->> 'узрост' = '30';

JSONP (JSON with Padding)

Азначэнне: JSONP - гэта метад запыту дадзеных ад сервера, які знаходзіцца ў іншай даменнай зоне, абыходзячы палітыку same-origin policy ў вэб-браўзэрах. Гэта ўключае ў сябе ўкладанне дадзеных JSON у функцыю зваротнага выкліку, дазваляючы апрацоўваць дадзеныя як код JavaScript.

Выпадкі выкарыстання: JSONP выкарыстоўваецца ў асноўным у вэб-дадатках для бяспечнага (раней так лічылася) запыту дадзеных ад сервера ў іншай даменнай зоне. Гэта абыход для same-origin policy, але становіцца менш распаўсюджаным з шырокім укараненнем CORS (Cross-Origin Resource Sharing).

Праца: Праца JSONP падобная да JSON; аднак, пытанні бяспекі і канкрэтны выпадак выкарыстання для абыходу палітыкі аднолькавага паходжання робяць яго менш звязаным з працай і больш з функцыянальнасцю.

Прыклад:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Weather Information</title>
    <script>
        // Define the callback function that processes the JSONP response
        function displayWeather(response) {
            // Extract weather data from the response
            var weather = "Current temperature in " + response.location + " is " + response.temperature + "°C";
            // Display the weather information
            document.getElementById('weather').innerText = weather;
        }
    </script>
</head>
<body>
    <h1>Weather Information</h1>
    <p id="weather">Loading...</p>
    <script>
        // Add a <script> tag to your page, which makes a request to the weather API
        var script = document.createElement('script');
        script.src = 'http://example-weather-api.com/jsonp?callback=displayWeather';
        document.getElementsByTagName('head')[0].appendChild(script);
    </script>
</body>
</html>

Ну і апошні герой сенняшняга артыкула: JSONL (JSON Lines)

Азначэнне: JSONL - гэта фармат захоўвання структураваных дадзеных, дзе кожны радок з'яўляецца сапраўдным аб'ектам JSON, аддзеленым сімваламі новага радка. Ён таксама вядомы як NDJSON (Newline Delimited JSON).

Выпадкі выкарыстання: JSONL асабліва карысны для вядзення журналаў і перадачы вялікіх набораў дадзеных праз стрымы, паколькі дазваляе лёгка дадаваць новыя запісы без уплыву на ўсю структуру файла. Гэта таксама карысна для апрацоўкі вялікіх набораў дадзеных з дапамогай апрацоўкі праз стрымы.

Праца: Файлы JSONL вельмі эфектыўныя для апрацоўкі, паколькі кожны радок можа быць прачытаны, аналізаваны і апрацаваны незалежна, што спрыяе паралельнай апрацоўцы і зніжае выкарыстанне памяці для вялікіх набораў дадзеных.

Прыклад:

{"імя": "Джон Доў", "узрост": 30, "электронная пошта": "johndoe@example.com", "падпісаны": true}
{"імя": "Джэйн Сміт", "узрост": 25, "электронная пошта": "janesmith@example.com", "падпісаны": false}

Вывад Як бачна па выніках нашага "даследвання", кожны з гэтых фарматаў служыць вызначаным мэтам:

JSON з'яўляецца стандартным фарматам для абмену дадзенымі ў вэбе. JSONB паляпшае магчымасці JSON у базах дадзеных, прапануючы перавагі ў працы за кошт павелічэння аб'ёму захоўвання. JSONP - гэта абыход для запытаў між даменамі ў вэб-дадаткамі, хоць яго выкарыстанне зніжаецца з-за сучасных вэб-стандартаў. JSONL прапануе перавагі для вядзення журналаў і апрацоўкі вялікіх, раздзеленых радкамі набораў дадзеных.

Карацей - усе гэтыя рэчы вельмі розныя і ў кожнай з іх свая мэта, таму пераблытаць у вас наўрад ці атрымаецца.

ЗЫ: Дзякуй што дачыталі дасюль. Калі вы жадаеце абмеркаваць -запрашаем ў каментары

Admin, 2024-03-06
Каментары

    (Каб даслаць каментар залагуйцеся ў свой уліковы запіс)

    ;