JSON, JSONL, JSONB, JSONP - такія падобныя і такія розныя
Уступ
На днях я сутыкнуўся з чарговым акронімам вытворным ад JSON, і чарговы раз падумаў - "зноў нейкую лухту прыцягнулі, чым вам звычайны JSON не падыходзіць" Але цікаўнасць узяла верх і я правёў невялікае "даследванне" пра ўсе гэтыя словы: JSON, JSONL, JSONB, JSONP
Разглядаць кожны з фарматаў будзем па трох параметрах - што ен сабоў увасабляе, дзе выкарыстоўваецца, як ён працуе (недахопы/перавагі).
JSON (JavaScript Object Notation)
Азначэнне: JSON - гэта лёгкі фармат абмену дадзенымі, які лёгка чытаць і пісаць людзям і лёгка аналізаваць і генераваць машынам. Ён пабудаваны на двух структурах: калекцыі пар назва/значэнне (аб'ект у моўных праграмаваннях) і упарадкаванага спісу значэнняў (масіў).
Выпадкі выкарыстання: JSON шырока выкарыстоўваецца для перадачы дадзеных у вэб-дадатках паміж кліентамі і серверамі. Гэта аснова большасці REST API, што дазваляе лёгка абмяняцца дадзенымі.
Праца: Хоць JSON эфектыўны для абмену дадзенымі, яго тэкставая прырода азначае, што ён можа не быць самым эфектыўным фарматам па аб'ёме або хуткасці для вялікіх аб'ёмаў дадзеных.
Прыклад:
text1{ 2 "імя": "Джон Доў", 3 "узрост": 30, 4 "электронная пошта": "johndoe@example.com", 5 "падпісаны": true 6}
JSONB (Binary JSON)
Азначэнне: JSONB - гэта бінарны фармат, які захоўвае дадзеныя JSON у дэкампрэсаваным бінарным фармаце. Даступны ў базах дадзеных, такіх як PostgreSQL, ён дазваляе больш эфектыўна захоўваць, атрымліваць і запрошваць аперацыі над дадзенымі JSON.
Выпадкі выкарыстання: JSONB ідэальна падыходзіць для захоўвання дадзеных JSON у базах дадзеных, дзе вам трэба часта атрымліваць доступ і маніпуляваць структурай JSON, такімі як фільтрацыя, пошук у палях JSON або абнаўленне частак дакумента JSON.
Праца: JSONB прапануе значныя перавагі ў працы ў параўнанні з простым тэкстам JSON, уключаючы высокую прадукцыйнасць запытаў дзякуючы яго бінарнай прыродзе, якая дазваляе індэксаванне.Недахопам з'яўляецца некалькі больш высокі кошт захоўвання.
Прыклад:
text1CREATE TABLE users ( 2 id serial PRIMARY KEY, 3 profile JSONB 4); 5 6INSERT INTO users (profile) 7VALUES ('{"імя": "Джон Доў", "узрост": 30, "электронная пошта": "johndoe@example.com", "падпісаны": true}'); 8 9SELECT profile ->> 'імя' AS user_name FROM users WHERE profile ->> 'узрост' = '30'; 10
JSONP (JSON with Padding)
Азначэнне: JSONP - гэта метад запыту дадзеных ад сервера, які знаходзіцца ў іншай даменнай зоне, абыходзячы палітыку same-origin policy ў вэб-браўзэрах. Гэта ўключае ў сябе ўкладанне дадзеных JSON у функцыю зваротнага выкліку, дазваляючы апрацоўваць дадзеныя як код JavaScript.
Выпадкі выкарыстання: JSONP выкарыстоўваецца ў асноўным у вэб-дадатках для бяспечнага (раней так лічылася) запыту дадзеных ад сервера ў іншай даменнай зоне. Гэта абыход для same-origin policy, але становіцца менш распаўсюджаным з шырокім укараненнем CORS (Cross-Origin Resource Sharing).
Праца: Праца JSONP падобная да JSON; аднак, пытанні бяспекі і канкрэтны выпадак выкарыстання для абыходу палітыкі аднолькавага паходжання робяць яго менш звязаным з працай і больш з функцыянальнасцю.
Прыклад:
text1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>Weather Information</title> 6 <script> 7 // Define the callback function that processes the JSONP response 8 function displayWeather(response) { 9 // Extract weather data from the response 10 var weather = "Current temperature in " + response.location + " is " + response.temperature + "°C"; 11 // Display the weather information 12 document.getElementById('weather').innerText = weather; 13 } 14 </script> 15</head> 16<body> 17 <h1>Weather Information</h1> 18 <p id="weather">Loading...</p> 19 <script> 20 // Add a <script> tag to your page, which makes a request to the weather API 21 var script = document.createElement('script'); 22 script.src = 'http://example-weather-api.com/jsonp?callback=displayWeather'; 23 document.getElementsByTagName('head')[0].appendChild(script); 24 </script> 25</body> 26</html> 27
Ну і апошні герой сенняшняга артыкула: JSONL (JSON Lines)
Азначэнне: JSONL - гэта фармат захоўвання структураваных дадзеных, дзе кожны радок з'яўляецца сапраўдным аб'ектам JSON, аддзеленым сімваламі новага радка. Ён таксама вядомы як NDJSON (Newline Delimited JSON).
Выпадкі выкарыстання: JSONL асабліва карысны для вядзення журналаў і перадачы вялікіх набораў дадзеных праз стрымы, паколькі дазваляе лёгка дадаваць новыя запісы без уплыву на ўсю структуру файла. Гэта таксама карысна для апрацоўкі вялікіх набораў дадзеных з дапамогай апрацоўкі праз стрымы.
Праца: Файлы JSONL вельмі эфектыўныя для апрацоўкі, паколькі кожны радок можа быць прачытаны, аналізаваны і апрацаваны незалежна, што спрыяе паралельнай апрацоўцы і зніжае выкарыстанне памяці для вялікіх набораў дадзеных.
Прыклад:
text1{"імя": "Джон Доў", "узрост": 30, "электронная пошта": "johndoe@example.com", "падпісаны": true} 2{"імя": "Джэйн Сміт", "узрост": 25, "электронная пошта": "janesmith@example.com", "падпісаны": false} 3
Вывад Як бачна па выніках нашага "даследвання", кожны з гэтых фарматаў служыць вызначаным мэтам:
JSON з'яўляецца стандартным фарматам для абмену дадзенымі ў вэбе. JSONB паляпшае магчымасці JSON у базах дадзеных, прапануючы перавагі ў працы за кошт павелічэння аб'ёму захоўвання. JSONP - гэта абыход для запытаў між даменамі ў вэб-дадаткамі, хоць яго выкарыстанне зніжаецца з-за сучасных вэб-стандартаў. JSONL прапануе перавагі для вядзення журналаў і апрацоўкі вялікіх, раздзеленых радкамі набораў дадзеных.
Карацей - усе гэтыя рэчы вельмі розныя і ў кожнай з іх свая мэта, таму пераблытаць у вас наўрад ці атрымаецца.
ЗЫ: Дзякуй што дачыталі дасюль. Калі вы жадаеце абмеркаваць -запрашаем ў каментары
Каментары
(Каб даслаць каментар залагуйцеся ў свой уліковы запіс)