Pāriet uz galveno saturu

JSON-LD skaidrojums

JSON-LD ir parasts JSON ar vienu papildu rindu, kas pasaka, ko lauki nozīmē. Šī rinda lokālu lauka nosaukumu pārvērš globāli definētā, tāpēc sistēma, kas jūsu datus nekad nav redzējusi, tomēr var saprast, par ko jūs runājat. Tas ir W3C standarts kopš 2014. gada, tā meklētājprogrammas lasa tieši šo lapu, un uz tā balstās W3C datu modelis pārbaudāmiem pilnvarojumiem.

Vienkārša JSON problēma

JSON pasaka, kā dati tiek pierakstīti. Tas neko nepasaka par to, ko tie nozīmē. Lauks ar nosaukumu name var būt persona, uzņēmums vai produkts. Lauks ar nosaukumu id var būt klienta numurs, pases numurs vai rinda kāda datubāzē. Divas sistēmas abas var izdot pilnīgi derīgu JSON un tomēr nesaprasties par katru tā lauku.

Praksē šo plaisu aizver vienošanās. Abas puses pieraksta, ko lauki nozīmē, un atbilstoši tam būvē savu programmatūru. Tas darbojas vienai integrācijai, kļūst dārgi pie desmit un pārstāj darboties pavisam, kad vienā valstī izdotu pilnvarojumu jāsaprot pārbaudītājam citā valstī, ar kuru neviens iepriekš nav runājis.

Ko dara @context

JSON-LD šo plaisu aizver paša dokumenta iekšienē. @context katru īso lauka nosaukumu sasaista ar globāli unikālu identifikatoru, parasti URL, ko kontrolē tas, kurš vārdnīcu definēja. Lauks paliek īss un cilvēkam salasāms un kļūst mašīnai nepārprotams.

Vienkāršs JSON

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

Derīgs, salasāms un bezjēdzīgs ikvienam, kam neviens iepriekš nav pateicis, kas laukos būtu jāatrodas.

Tie paši dati kā JSON-LD

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

Katrs lauks tagad norāda uz publicētu definīciju, tāpēc sistēma, kas šo dokumentu nekad nav redzējusi, to tomēr var izlasīt pareizi.

  • @context nosauc vārdnīcu, kurā ir definēts katrs dokumenta lauks.
  • @type pasaka, kāda veida lietu dokuments apraksta, lai no šīs vārdnīcas tiktu izvēlētas pareizās definīcijas.
Divas pievienotās rindas ir visa atšķirība. Nemainījās neviena vērtība.

Pašos datos nekas nemainās. Tās pašas vērtības tādā pašā formā tagad nes norādi uz katra lauka definīciju. Saņemošā sistēma, kas vārdnīcu atpazīst, precīzi zina, ko tā saņēma, bet tā, kas neatpazīst, joprojām var lasīt dokumentu kā parastu JSON un pārējo ignorēt.

Tajā arī ir visa doma. Nozīme ceļo kopā ar dokumentu, nevis mājo specifikācijā, par kuru abām pusēm bija jāvienojas iepriekš.

Kur tas parādās pārbaudāmos pilnvarojumos

W3C Verifiable Credentials Data Model 2.0, kas kopš 2025. gada 15. maija ir W3C Recommendation, ir būvēts uz JSON-LD. Katrs pilnvarojums sākas ar @context, kura pirmā vērtība ir kopīgā pilnvarojumu vārdnīca, tāpēc jēdzieni, kas kopīgi visiem pilnvarojumiem, izsniedzējs, subjekts, derīguma datumi un statusa informācija, visur nozīmē to pašu.

Viss, kas ārpus tā, nāk no otras vārdnīcas. Universitāte vienu publicē diplomu laukiem, tirdzniecības kamera vienu uzņēmumu reģistrācijas laukiem. Pārbaudītājs, kam rūp diplomi, ielādē pirmo, tas, kam rūp uzņēmumu dati, ielādē otro, un nevienu no tiem nav jāmaina, kad otrs pievieno lauku.

Tieši tas ļauj vienam pilnvarojumu formātam nest datus, ko neviens neparedzēja, kad formāts tapa, un tā ir īpašība, kas vajadzīga atvērtai ekosistēmai un nav vajadzīga slēgtam profilam.

Saistīto datu parakstīšana

Pilnvarojums ir arī jāparaksta, un datu modelis tur apzināti atstāj izvēli. Ietverošs pierādījums iesaiņo visu pilnvarojumu paraksta konteinerā, piemēram, JWT. Baiti tiek parakstīti tieši tādi, kādi tie ir, tāpēc viss, kas tos ceļā pārkārto vai pārformatē, salauž parakstu.

Iegults Data Integrity pierādījums darbojas pretēji. Dokumentu vispirms pārvērš kanoniskā formā, ko definē RDF Dataset Canonicalization un kas kopš 2024. gada 21. maija ir W3C Recommendation, un paraksts aptver šo formu, nevis baitus. Tā kā kanoniskā forma nav atkarīga no atslēgu secības, atstarpēm vai no tā, kādus īsos nosaukumus @context tobrīd lieto, paraksts izdzīvo arī tad, ja dokumentu citur uzraksta no jauna.

Kur tas iederas EUDI Wallet

Ne tur, kur lielākā daļa pieņem. Architecture and Reference Framework Eiropas maciņam nosauc divus pilnvarojumu formātus, SD-JWT VC un mdoc, un neviens no tiem nav JSON-LD. Organizācija, kas šodien izsniedz uz EUDI Wallet, ceļā nesastaps nevienu @context.

Iemesls ir īstenojamība. Abiem formātiem ir noteikta struktūra, viens paraksta mehānisms un neviena dokumenta, kas pārbaudītājam būtu jāiegūst, pirms tas var ko pārbaudīt. Maciņam, kas darbojas telefonā, un pārbaudītājam, kam jāatbild milisekundēs, tas ir vērtīgāk nekā atvērta vārdnīca.

JSON-LD nopelna savu vietu tur, kur datiem jāceļo ārpus ekosistēmas, kas tos definēja: produktu pases un piegādes ķēdes dati, starpnozaru izmēģinājumi un pilnvarojumu veidi, ko neviens centrāls profils nekad neuzskaitīs. Abas pasaules pārklājas biežāk, nekā konkurē, un organizācijas, kas strādā abās, parasti nonāk pie abu atbalstīšanas.

Tas otrs JSON-LD, ko jau esat lietojuši

Ilgi pirms pilnvarojumiem JSON-LD kļuva par veidu, kā tīmekļa vietne pasaka meklētājprogrammai, par ko ir lapa. Tā bloks lapas pirmkodā, izmantojot schema.org vārdnīcu, ir tas, kas lapu padara par atpazītu rakstu, produktu, pasākumu vai organizāciju. Šajā lapā tāds ir.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "JSON-LD skaidrojums",
  "description": "Ko JSON-LD pievieno vienkāršam JSON, kā @context katram laukam piešķir vienu nozīmi un kur to izmanto pārbaudāmi pilnvarojumi.",
  "image": "https://www.credenco.com/images/og-default.jpg",
  "datePublished": "2026-10-15",
  "dateModified": "2026-10-15",
  "inLanguage": "lv",
  "mainEntityOfPage": "https://www.credenco.com/lv/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"
    }
  }
}

Tas ir tas pats formāts ar citu vārdnīcu, un tas ir skaidrākais veids, kā ieraudzīt būtību. Neviens šeit ne ar vienu meklētājprogrammu neko nav norunājis. @context norāda uz schema.org, meklētājprogramma šo vārdnīcu jau pazīst, un lapu saprot puse, ar kuru tā nekad nav runājusi. Pilnvarojums, kas šķērso robežu, dara tieši to pašu.

Ko tas jums maksā

Kontekstam jābūt pieejamam. Pārbaudītājs, kas to iegūst pārbaudes brīdī, ir pievienojis drošības lēmumam tīkla atkarību, un tas, kurš šo dokumentu pasniedz, var mainīt to, ko pilnvarojums šķietami pasaka. Īstas ieviešanas nostiprina pieņemamos kontekstus un piegādā tos kopā ar programmatūru, nevis iegūst tos tiešsaistē.

Arī kanonizācija ir īsts darbs. Pārvērst dokumentu kanoniskā datu kopā pirms parakstīšanas ir ievērojami vairāk koda nekā parakstīt baitus, un tās kļūmju veidi ir smalki. Dokumenti turklāt ir lielāki, kas sāk nozīmēt uz QR koda vai NFC pieskāriena.

Nekas no tā nepadara JSON-LD par nepareizu izvēli. Tas padara to par izvēli: maksājiet par atvērtām vārdnīcām tur, kur datiem jāpārdzīvo vienošanās, kas tos radīja, un izlaidiet tās tur, kur nemainīgs profils jau pasaka visu, kas abām pusēm vajadzīgs.

Ko tas nozīmē jums

Izsniedzējs

Izsniegšana uz EUDI Wallet nozīmē SD-JWT VC vai mdoc, un JSON-LD nekad neparādās. Izsniegšana W3C ekosistēmā padara jūsu @context par ilgtermiņa saistībām: tā ir jūsu lauku publiskā definīcija, un tās maiņa salauž katru pārbaudītāju, kas veco saglabāja kešatmiņā.

Pārbaudītājs

Izlemiet, kādus kontekstus jūs pieņemat, un piegādājiet tos kopā ar savu programmatūru. Viena iegūšana pārbaudes laikā padara attālinātu serveri par daļu no jūsu drošības lēmuma un ievieto tīkla izsaukumu jūsu atbildes laika vidū.

Izstrādātājs

Lasiet JSON-LD dokumentu kā parastu JSON, kad vajadzīgs tikai viens lauks, un pēc pilna procesora ķerieties tikai tur, kur tiešām izvēršat vai kanonizējat. Lielākā daļa sarežģītības, ko cilvēki piedēvē JSON-LD, sēž parakstīšanas ceļā, nevis lasīšanas ceļā.

Saistītie termini

Biežāk uzdotie jautājumi

Vai JSON-LD joprojām ir tikai JSON?

Jā. Katrs JSON-LD dokuments ir derīgs JSON, un programmatūra, kurai jānolasa tikai viens lauks, var to tā arī apstrādāt. Papildu mehānika nāk klāt tikai tad, kad dokumentu izvērš pilnā formā vai kanonizē parakstīšanai, ko lielākā daļa koda, kas lasa pilnvarojumu, nekad nedara.

Vai EUDI Wallet izmanto JSON-LD?

Nē. Architecture and Reference Framework kā pilnvarojumu formātus nosauc SD-JWT VC un mdoc, un neviens no tiem neizmanto JSON-LD. Tam ir nozīme W3C pārbaudāmo pilnvarojumu ekosistēmās, produktu pasēs un piegādes ķēdes datos, nevis pašā Eiropas maciņā.

Vai pārbaudītājs katru reizi lejupielādē @context?

Nevajadzētu. Konteksta iegūšana pārbaudes laikā ievieto tīkla izsaukumu drošības lēmuma vidū un dod attālinātam serverim iespēju mainīt to, ko dokuments šķietami pasaka. Ieviesumi nostiprina pieņemamos kontekstus un piegādā tos kopā ar programmatūru, kas novērš arī aizkavi.

Vai tas ir tas pats JSON-LD, ko lasa meklētājprogrammas?

Tas pats formāts ar citu vārdnīcu. Tīmekļa lapas strukturētie dati savu @context vērš uz schema.org, savukārt pilnvarojums to vērš uz pilnvarojumu vārdnīcu un uz visu citu, kas tam vajadzīgs. Apstrādes noteikumi abos gadījumos ir identiski.

Avoti

  1. JSON-LD 1.1, W3C Recommendation, 2020. gada 16. jūlijs
  2. Verifiable Credentials Data Model 2.0, W3C Recommendation, 2025. gada 15. maijs
  3. Verifiable Credential Data Integrity 1.0, W3C Recommendation, 2025. gada 15. maijs
  4. RDF Dataset Canonicalization, W3C Recommendation, 2024. gada 21. maijs

Šī lapa ir informatīva un nav juridisks padoms. Autoritatīvām norādēm skatiet tieši W3C specifikācijas.

Parunājiet ar mums par pilnvarojumu formātiem un sadarbspēju