Praleisti ir pereiti prie pagrindinio turinio

JSON-LD paaiškintas

JSON-LD yra įprastas JSON su viena papildoma eilute, kuri pasako, ką laukai reiškia. Ta eilutė vietinį lauko pavadinimą paverčia globaliai apibrėžtu, todėl sistema, kuri jūsų duomenų niekada nematė, vis tiek supranta, apie ką kalbate. Tai W3C standartas nuo 2014 metų, taip paieškos sistemos skaito būtent šį puslapį, ir juo remiasi W3C duomenų modelis patikrinamiems kredencialams.

Paprasto JSON problema

JSON pasako, kaip duomenys užrašomi. Jis nieko nesako apie tai, ką jie reiškia. Laukas pavadinimu name gali būti asmuo, įmonė arba produktas. Laukas pavadinimu id gali būti kliento numeris, paso numeris arba eilutė kažkieno duomenų bazėje. Dvi sistemos gali abi pateikti visiškai galiojantį JSON ir vis tiek nesutarti dėl kiekvieno jo lauko.

Praktikoje ši spraga užtaisoma susitarimu. Abi pusės užrašo, ką laukai reiškia, ir pagal tai kuria savo programinę įrangą. Tai veikia vienai integracijai, prie dešimties tampa brangu, o visiškai nustoja veikti, kai vienoje šalyje išduotą kredencialą turi suprasti tikrintojas kitoje, su kuriuo niekas iš anksto nekalbėjo.

Ką daro @context

JSON-LD tą spragą užtaiso pačiame dokumente. @context kiekvieną trumpą lauko pavadinimą susieja su globaliai unikaliu identifikatoriumi, paprastai URL adresu, kurį valdo tas, kas žodyną apibrėžė. Laukas lieka trumpas ir žmogui skaitomas, o mašinai tampa nedviprasmiškas.

Paprastas JSON

{
  "name": "Alex Jansen",
  "birthDate": "1994-03-21",
  "jobTitle": "Compliance Officer"
}

Galiojantis, skaitomas ir beprasmis kiekvienam, kuriam niekas iš anksto nepasakė, kas turėtų būti laukuose.

Tie patys duomenys kaip JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Alex Jansen",
  "birthDate": "1994-03-21",
  "jobTitle": "Compliance Officer"
}

Kiekvienas laukas dabar rodo į paskelbtą apibrėžtį, todėl sistema, kuri šio dokumento niekada nematė, vis tiek gali jį perskaityti teisingai.

  • @context įvardija žodyną, kuriame apibrėžtas kiekvienas dokumento laukas.
  • @type pasako, kokį dalyką dokumentas aprašo, kad iš to žodyno būtų paimtos teisingos apibrėžtys.
Dvi pridėtos eilutės yra visas skirtumas. Nepasikeitė nė viena reikšmė.

Pačiuose duomenyse niekas nesikeičia. Tos pačios reikšmės ta pačia forma dabar neša nuorodą į kiekvieno lauko apibrėžtį. Priimančioji sistema, atpažįstanti žodyną, tiksliai žino, ką gavo, o ta, kuri neatpažįsta, vis tiek gali skaityti dokumentą kaip paprastą JSON ir likusį ignoruoti.

Tame ir yra visa mintis. Prasmė keliauja kartu su dokumentu, užuot gyvenusi specifikacijoje, dėl kurios abi pusės turėjo susitarti iš anksto.

Kur jis pasirodo patikrinamuose kredencialuose

W3C Verifiable Credentials Data Model 2.0, nuo 2025 m. gegužės 15 d. esantis W3C Recommendation, pastatytas ant JSON-LD. Kiekvienas kredencialas prasideda @context, kurio pirmoji reikšmė yra bendras kredencialų žodynas, todėl sąvokos, bendros visiems kredencialams, išdavėjas, subjektas, galiojimo datos ir būsenos informacija, visur reiškia tą patį.

Visa, kas už to, ateina iš antro žodyno. Universitetas vieną skelbia diplomų laukams, prekybos rūmai vieną įmonių registracijos laukams. Tikrintojas, kuriam rūpi diplomai, įkelia pirmąjį, tas, kuriam rūpi įmonių duomenys, įkelia antrąjį, ir nė vieno nereikia keisti, kai kitas prideda lauką.

Būtent tai leidžia vienam kredencialų formatui nešti duomenis, kurių niekas nenumatė, kai formatas buvo rašomas, ir tai yra savybė, kurios reikia atvirai ekosistemai ir nereikia uždaram profiliui.

Susietų duomenų pasirašymas

Kredencialą taip pat reikia pasirašyti, ir duomenų modelis ten sąmoningai palieka pasirinkimą. Gaubiantis įrodymas suvynioja visą kredencialą į parašo konteinerį, pavyzdžiui, JWT. Baitai pasirašomi lygiai tokie, kokie yra, todėl viskas, kas juos pakeliui pertvarko ar performatuoja, sugadina parašą.

Įterptas Data Integrity įrodymas veikia atvirkščiai. Dokumentas pirmiausia paverčiamas kanonine forma, kurią apibrėžia RDF Dataset Canonicalization ir kuri nuo 2024 m. gegužės 21 d. yra W3C Recommendation, o parašas apima tą formą, o ne baitus. Kadangi kanoninė forma nepriklauso nuo raktų tvarkos, tarpų ar nuo to, kokius trumpus pavadinimus @context kaip tik naudoja, parašas išlieka ir tada, kai dokumentas kitur perrašomas iš naujo.

Kur jis dera EUDI Wallet sistemoje

Ne ten, kur dauguma mano. Architecture and Reference Framework Europos piniginei įvardija du kredencialų formatus, SD-JWT VC ir mdoc, ir nė vienas iš jų nėra JSON-LD. Organizacija, kuri šiandien išduoda į EUDI Wallet, pakeliui nesutiks nė vieno @context.

Priežastis yra įgyvendinamumas. Abu formatai turi fiksuotą struktūrą, vieną parašo mechanizmą ir jokio dokumento, kurį tikrintojas turėtų parsisiųsti prieš ką nors patikrindamas. Piniginei, veikiančiai telefone, ir tikrintojui, kuris turi atsakyti per milisekundes, tai vertingiau nei atviras žodynas.

JSON-LD užsitarnauja savo vietą ten, kur duomenys turi keliauti už juos apibrėžusios ekosistemos ribų: produktų pasai ir tiekimo grandinės duomenys, tarpsektoriniai bandomieji projektai ir kredencialų tipai, kurių joks centrinis profilis niekada nesuskaičiuos. Šie du pasauliai persidengia dažniau, nei konkuruoja, o organizacijos, dirbančios abiejuose, paprastai baigia palaikydamos abu.

Tas kitas JSON-LD, kurį jau naudojote

Gerokai prieš kredencialus JSON-LD tapo būdu, kuriuo svetainė pasako paieškos sistemai, apie ką yra puslapis. Jo blokas puslapio pirminiame kode, naudojant schema.org žodyną, yra tai, kas puslapį paverčia atpažintu straipsniu, produktu, renginiu ar organizacija. Šiame puslapyje toks blokas yra.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "JSON-LD paaiškintas",
  "description": "Ką JSON-LD prideda prie paprasto JSON, kaip @context kiekvienam laukui suteikia vieną reikšmę ir kur jį naudoja patikrinami kredencialai.",
  "image": "https://www.credenco.com/images/og-default.jpg",
  "datePublished": "2026-10-15",
  "dateModified": "2026-10-15",
  "inLanguage": "lt",
  "mainEntityOfPage": "https://www.credenco.com/lt/explained/json-ld",
  "author": {
    "@type": "Organization",
    "name": "Credenco",
    "url": "https://www.credenco.com/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Credenco",
    "logo": {
      "@type": "ImageObject",
      "url": "https://www.credenco.com/logo.svg"
    }
  }
}

Tai tas pats formatas su kitu žodynu ir aiškiausias būdas pamatyti esmę. Niekas čia su jokia paieškos sistema dėl nieko nesitarė. @context rodo į schema.org, paieškos sistema tą žodyną jau pažįsta, o puslapį supranta šalis, su kuria jis niekada nekalbėjo. Sieną kertantis kredencialas daro lygiai tą patį.

Kiek tai kainuoja

Kontekstas turi būti pasiekiamas. Tikrintojas, kuris jį parsisiunčia tikrinimo metu, į saugumo sprendimą įtraukė tinklo priklausomybę, o tas, kas tą dokumentą pateikia, gali pakeisti tai, ką kredencialas atrodo sakąs. Tikri diegimai prisega priimamus kontekstus ir pateikia juos kartu su programine įranga, užuot sprendę juos gyvai.

Kanonizavimas taip pat yra tikras darbas. Paversti dokumentą kanoniniu duomenų rinkiniu prieš pasirašant yra gerokai daugiau kodo nei pasirašyti baitus, o jo gedimo būdai subtilūs. Dokumentai dar ir didesni, o tai pradeda turėti reikšmės QR kode ar NFC prisilietime.

Nė vienas iš šių dalykų nepadaro JSON-LD neteisingu pasirinkimu. Jie padaro jį pasirinkimu: mokėkite už atvirus žodynus ten, kur duomenys turi pergyventi juos sukūrusį susitarimą, ir praleiskite juos ten, kur fiksuotas profilis jau pasako viską, ko abiem pusėms reikia.

Ką tai reiškia jums

Išdavėjas

Išdavimas į EUDI Wallet reiškia SD-JWT VC arba mdoc, ir JSON-LD niekada neiškyla. Išdavimas į W3C ekosistemą paverčia jūsų @context ilgalaikiu įsipareigojimu: tai vieša jūsų laukų apibrėžtis, o jos pakeitimas sugadina kiekvieną tikrintoją, kuris seną išsaugojo podėlyje.

Tikrintojas

Nuspręskite, kuriuos kontekstus priimate, ir pateikite juos kartu su savo programine įranga. Vieno parsisiuntimas tikrinimo metu paverčia nutolusį serverį jūsų saugumo sprendimo dalimi ir įterpia tinklo užklausą į jūsų atsako laiko vidurį.

Kūrėjas

Skaitykite JSON-LD dokumentą kaip paprastą JSON, kai tereikia vieno lauko, o pilno procesoriaus griebkitės tik ten, kur iš tikrųjų išplečiate ar kanonizuojate. Didžioji dalis sudėtingumo, kurį žmonės priskiria JSON-LD, slypi pasirašymo kelyje, o ne skaitymo.

Susiję terminai

Dažnai užduodami klausimai

Ar JSON-LD vis dar tiesiog JSON?

Taip. Kiekvienas JSON-LD dokumentas yra galiojantis JSON, o programinė įranga, kuriai reikia perskaityti tik vieną lauką, gali jį taip ir traktuoti. Papildomas mechanizmas įsijungia tik tada, kai dokumentą išplečiate į pilną formą arba kanonizuojate pasirašymui, ko didžioji dalis kredencialą skaitančio kodo niekada nedaro.

Ar EUDI Wallet naudoja JSON-LD?

Ne. Architecture and Reference Framework kredencialų formatais įvardija SD-JWT VC ir mdoc, ir nė vienas iš jų nenaudoja JSON-LD. Jis svarbus W3C patikrinamų kredencialų ekosistemose, produktų pasuose ir tiekimo grandinės duomenyse, o ne pačioje Europos piniginėje.

Ar tikrintojas kaskart atsisiunčia @context?

Neturėtų. Konteksto parsisiuntimas tikrinimo metu įterpia tinklo užklausą į saugumo sprendimo vidurį ir suteikia nutolusiam serveriui galimybę pakeisti tai, ką dokumentas atrodo sakąs. Įgyvendinimai prisega priimamus kontekstus ir pateikia juos kartu su programine įranga, o tai pašalina ir delsą.

Ar tai tas pats JSON-LD, kurį skaito paieškos sistemos?

Tas pats formatas su kitu žodynu. Tinklalapio struktūrinti duomenys savo @context nukreipia į schema.org, o kredencialas nukreipia jį į kredencialų žodyną ir į visa kita, ko jam reikia. Apdorojimo taisyklės abiem atvejais identiškos.

Šaltiniai

  1. JSON-LD 1.1, W3C Recommendation, 2020 m. liepos 16 d.
  2. Verifiable Credentials Data Model 2.0, W3C Recommendation, 2025 m. gegužės 15 d.
  3. Verifiable Credential Data Integrity 1.0, W3C Recommendation, 2025 m. gegužės 15 d.
  4. RDF Dataset Canonicalization, W3C Recommendation, 2024 m. gegužės 21 d.

Šis puslapis yra informacinio pobūdžio ir nėra teisinė konsultacija. Dėl autoritetingų nurodymų kreipkitės tiesiai į W3C specifikacijas.

Pasikalbėkite su mumis apie kredencialų formatus ir sąveikumą