Rokasgrāmatas

Kas ir JSON? Vienkāršs ceļvedis ar piemēriem

JSON (JavaScript Object Notation) ir vienkāršs teksta formāts strukturētu datu ierakstīšanai — tādu lietu kā klients, pasūtījums vai produktu saraksts — kā nosaukumu pārus ar vērtībām. Cilvēkiem to ir viegli lasīt, un programmām viegli to ģenerēt un nolasīt. Kad lietotnes un pakalpojumi apmainās ar datiem tīmeklī, JSON ir daudz biežāk izmantots formāts nekā jebkurš cits.

Kāpēc JSON ir svarīgs, veidojot ar MI

JSON sastapsies pastāvīgi, pat ja nekad nerakstīsi kodu:

  • API. Kad tavas lietotnes ekrāni ielādē datus no backend, vai tavs backend izsauc maksājumu, e-pasta vai MI pakalpojumu, dati parasti ceļo kā JSON. Skat. kas ir API.
  • Iestatījumu faili. Daudzi projektu konfigurācijas faili ir JSON — piemēram, package.json, kas uzskaita JavaScript projekta atkarības.
  • Datubāzes. Postgres var glabāt JSON kolonnā (jsonb tips) datus, kas neiekļaujas tīros rindās un kolonnās. Skat. kas ir Postgres.
  • MI izvade. Kad vēlies, lai MI modelis atgrieztu kaut ko, ko programma var izmantot — tagu sarakstu, izgūtus rēķina laukus —, parasti lūdz JSON.
  • Kļūdu ziņojumi un žurnāli. Daudzas kļūdas nāk kā JSON, un to lasīšana bieži ir ātrākais veids, kā uzzināt, kas nogāja greizi.

Spēja lasīt JSON ļauj pārbaudīt, ko lietotne patiesībā saņēma, pamanīt trūkstošu lauku un precīzi aprakstīt problēmas savam MI veidotājam.

Ikdienas analoģija

Iedomājies papīra veidlapu: Vārds: ____, Tālrunis: ____, Jaunumi: ☐ jā ☐ nē. Katrs ieraksts ir uzraksts ar vērtību blakus. JSON ir šī veidlapa, uzrakstīta tekstā stingrā formātā, ko dators var nolasīt bez minējumiem. Un kā veidlapās, JSON var būt sekcijas sekciju iekšienē (adreses bloks ar ielu, pilsētu un pasta indeksu) un saraksti (vairāki tālruņa numuri).

Kā izskatās JSON

Šeit ir viena rezervācija JSON formātā:

{
  "id": 5001,
  "customer": "Lena Park",
  "service": "Haircut",
  "startsAt": "2026-10-03T14:00:00Z",
  "price": 35.5,
  "paid": false,
  "notes": null,
  "extras": ["beard trim", "hot towel"],
  "contact": {
    "email": "lena@example.com",
    "phone": "+44 20 7946 0000"
  }
}

Kā to lasīt:

  • Figurālās iekavas { } ietver objektu — nosaukumu un vērtību pāru kopu.
  • Katrs pāris ir "nosaukums": vērtība, atdalīts ar komatiem.
  • Kvadrātiekavas [ ] ietver masīvu — sakārtotu sarakstu.
  • Objekti un masīvi var atrasties viens otra iekšienē, kā to dara contact un extras.

Seši vērtību veidi

JSON ir tikai seši vērtību veidi. Šis mazais saraksts ir liela daļa iemesla, kāpēc tas strādā visur.

VeidsPiemērsPiezīmes
Virkne (teksts)"Lena Park"Vienmēr dubultpēdiņas
Skaitlis35.5, -2, 1e6Bez pēdiņām; bez valūtas simboliem
Būla vērtībatrue, falseMazie burti, bez pēdiņām
Nullnull„Nav vērtības”
Objekts{ "city": "Leeds" }Nosauktas vērtības
Masīvs[1, 2, 3]Sakārtots saraksts; elementi var būt jebkāda tipa

Datuma tipa nav. Datumi tiek rakstīti kā virknes, parasti ISO 8601 formātā, kā parādīts augstāk (2026-10-03T14:00:00Z, kur Z nozīmē UTC). Vienošanās par šo formātu novērš veselu kļūdu kategoriju ar laika joslām.

Stingrie noteikumi (no kurienes rodas kļūdas)

JSON ir mazāk piedodošs, nekā šķiet. Šie ir nederīgi:

{ name: "Lena" }            ← atslēga bez dubultpēdiņām
{ 'name': 'Lena' }          ← vienpēdiņas
{ "a": 1, "b": 2, }         ← komats beigās
{ "a": 1 "b": 2 }           ← trūkst komata
{ "a": 1 // comment }       ← komentāri nav atļauti

Vairums kļūdu „Unexpected token” ir kāda no šīm. JSON validators vai formatētājs parādīs precīzu rindu.

Darba piemērs: JSON caur lietotni

Klients skaista salonā rezervē frizūru. Šeit JSON parādās:

  1. Rezervācijas forma nosūta šo uz lietotnes backend:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
  1. Backend saglabā rezervāciju datubāzē un atbild ar statusu 201 Created un:
{ "id": 5001, "status": "confirmed" }
  1. Ja laiks jau bija aizņemts, tas var atbildēt ar statusu 409 Conflict un:
{ "error": "slot_taken", "message": "Šis laiks tikko tika rezervēts. Lūdzu, izvēlieties citu." }

Lapa nolasa status vai error un parāda pareizo ziņojumu. Ja lapa tā vietā parādītu tukšu ekrānu, pārlūkprogrammas izstrādātāju rīki (cilne Network) parādītu šo JSON — bieži ātrākais pavediens, kas izskaidro, kas nogāja greizi.

Galvenie termini

TerminsNozīme
AtslēgaNosaukums nosaukuma un vērtības pārī, piemēram, "email".
ParsePārvērst JSON tekstu datos, ko programma var izmantot.
Serialize / stringifyPārvērst datus JSON tekstā, lai nosūtītu vai saglabātu.
PayloadDati, kas nosūtīti pieprasījumā vai atbildē.
ShēmaApraksts par to, kādai formai datiem jābūt — kādi lauki, kādi tipi. JSON Schema ir standarta veids, kā to uzrakstīt.
JSONBPostgres bināro JSON kolonnas tips, kuru var indeksēt un vaicāt.
NDJSON / JSON LinesViens JSON objekts katrā rindā; bieži izmanto žurnāliem un straumēšanai.

Biežākie maldīgi priekšstati

  • „JSON ir JavaScript.” Tas radies no JavaScript sintakses, bet nav atkarīgs no valodas; Python, Java, C#, Go un pārējās to lasa.
  • „Skaitļi pēdiņās ir kārtībā.” "35" ir virkne, nevis skaitlis. Jaukšana rada kļūdas, piemēram, "35" + "5" kļūst par "355". Naudu bieži labāk glabāt veselos centos (3550), lai izvairītos no noapaļošanas problēmām.
  • „JSON ir drošs, jo tie ir tikai dati.” JSON var saturēt jebko, arī noslēpumus. Nelieciet API atslēgas JSON, kas tiek sūtīts pārlūkprogrammai.
  • „Liec visu JSON kolonnā.” Ērti elastīgiem papildinājumiem, bet dati, pēc kuriem meklē, filtrē vai savieno, parasti pieder pie īstām kolonnām.
  • „MI vienmēr atgriež derīgu JSON.” Modeļi var pievienot papildu tekstu vai salauzt formātu. Daudzi nodrošinātāji piedāvā strukturētās izvades režīmu; tavs kods tomēr joprojām jāpārbauda, ko tas atgriež.

Ko lūgt savam MI veidotājam

  • „Parādi man JSON piemēru, ko šis galapunkts atgriež.”
  • „Atgriez kļūdas kā JSON ar error kodu un cilvēkam lasāmu message.”
  • „Glabā datumus kā ISO 8601 virknes UTC un pārvērt vietējā laikā tikai ekrānā.”
  • „Glabā cenas kā veselus centus.”
  • „Validē ienākošo JSON serverī un noraidi pieprasījumus ar trūkstošiem vai nepareiza tipa laukiem.”
  • „Kad izsaucam MI modeli, lūdz JSON tieši šādā formā un pārbaudi to pirms lietošanas.”

JSON Mythex

Mythex nav jāraksta JSON ar rokām — apraksti, ko vēlies, un aģents uzraksta kodu, kas to sūta un nolasa. Tomēr noderīgi to atpazīt: kad kaut kas salūst, JSON kļūdas ielīmēšana čatā dod aģentam precīzu norādi. Dokumentācijas REST API backend recepte no sākuma prasa „skaidras JSON kļūdas”, un integrē jebkuru API recepte aptver ārējo pakalpojumu izsaukšanu. Plašākam skatam skat. REST pret GraphQL un kā atkļūdot MI veidotu lietotni.

Jautājumi

Kas ir JSON vienkāršos vārdos?

JSON (JavaScript Object Notation) ir vienkāršs teksta formāts strukturētu datu ierakstīšanai kā nosaukumu un vērtību pāri, piemēram, „name”: „Lena”. Gandrīz katrs tīmekļa API to izmanto datu sūtīšanai turp un atpakaļ, un daudzas lietotnes to izmanto iestatījumiem un glabātiem datiem.

Vai JSON ir programmēšanas valoda?

Nē. JSON ir datu formāts, nevis valoda. Tas pats par sevi neko nevar izpildīt — tikai apraksta datus. Lai gan tas radies no JavaScript, praktiski katra programmēšanas valoda to var nolasīt un uzrakstīt.

Kāda ir atšķirība starp JSON un JavaScript objektu?

Tie izskatās līdzīgi, bet JSON ir stingrāks. JSON katrai atslēgai jābūt dubultpēdiņās, virknes arī izmanto dubultpēdiņas, komentāru nav, galā nedrīkst būt komata, un vērtības ir ierobežotas līdz virknēm, skaitļiem, true, false, null, objektiem un masīviem.

Kāpēc mans JSON tiek uzskatīts par nederīgu?

Parastie iemesli ir komats pēc pēdējā elementa, vienpēdiņas dubultpēdiņu vietā, trūkstošs komats starp elementiem, neaizvērta iekava vai komentārs. Ielīmē JSON validatorā, un tas parādīs rindu.

Mythex · Pricing · Veidojiet jebko ar AI · Tīmekļa vietņu un lietotņu veidnes · Mythex salīdzinājumā · AI lietotņu veidošanas glosārijs · Bezmaksas rīki lietotņu veidošanai ar AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)