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 прапануе перавагі для вядзення журналаў і апрацоўкі вялікіх, раздзеленых радкамі набораў дадзеных.
Карацей - усе гэтыя рэчы вельмі розныя і ў кожнай з іх свая мэта, таму пераблытаць у вас наўрад ці атрымаецца.
ЗЫ: Дзякуй што дачыталі дасюль. Калі вы жадаеце абмеркаваць -запрашаем ў каментары
Каментары
(Каб даслаць каментар залагуйцеся ў свой уліковы запіс)