Preskoči na glavni sadržaj

JSON-LD objašnjen

JSON-LD je običan JSON s jednim dodatnim retkom koji govori što polja znače. Taj redak lokalni naziv polja pretvara u globalno definiran, pa sustav koji nikada nije vidio vaše podatke ipak može shvatiti o čemu govorite. Standard je W3C-a od 2014., tako tražilice čitaju upravo ovu stranicu, i upravo na njemu počiva podatkovni model W3C-a za provjerljive vjerodajnice.

Problem s običnim JSON-om

JSON govori kako se podaci zapisuju. Ne govori ništa o tome što oni znače. Polje imena name može biti osoba, tvrtka ili proizvod. Polje imena id može biti broj kupca, broj putovnice ili redak u nečijoj bazi podataka. Dva sustava mogu oba davati posve valjan JSON i ipak se ne slagati ni oko jednog njegovog polja.

U praksi se taj jaz zatvara dogovorom. Dvije strane zapišu što polja znače i prema tome izgrade svoj softver. To radi za jednu integraciju, postaje skupo kod deset i potpuno prestaje raditi kad vjerodajnicu izdanu u jednoj zemlji mora razumjeti provjeritelj u drugoj, s kojim nitko nije unaprijed razgovarao.

Što radi @context

JSON-LD taj jaz zatvara unutar samog dokumenta. @context svaki kratki naziv polja povezuje s globalno jedinstvenim identifikatorom, obično URL-om koji kontrolira onaj tko je rječnik definirao. Polje ostaje kratko i čitljivo čovjeku, a za stroj postaje nedvosmisleno.

Obični JSON

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

Valjan, čitljiv i bez značenja za svakoga kome nitko nije unaprijed rekao što bi polja trebala sadržavati.

Isti podaci kao JSON-LD

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

Svako polje sada upućuje na objavljenu definiciju, pa sustav koji ovaj dokument nikada nije vidio ipak može ispravno pročitati.

  • @context imenuje rječnik u kojem je definirano svako polje dokumenta.
  • @type govori kakvu stvar dokument opisuje, kako bi se iz tog rječnika uzele prave definicije.
Dva dodana retka cijela su razlika. Nijedna vrijednost nije se promijenila.

U samim se podacima ne mijenja ništa. Iste vrijednosti u istom obliku sada nose pokazivač na definiciju svakog polja. Sustav primatelj koji prepoznaje rječnik točno zna što je dobio, a onaj koji ga ne prepoznaje i dalje može čitati dokument kao obični JSON i zanemariti ostatak.

U tome je cijela zamisao. Značenje putuje s dokumentom umjesto da stanuje u specifikaciji oko koje su se dvije strane morale unaprijed dogovoriti.

Gdje se pojavljuje kod provjerljivih vjerodajnica

W3C Verifiable Credentials Data Model 2.0, od 15. svibnja 2025. W3C Recommendation, izgrađen je na JSON-LD-u. Svaka vjerodajnica počinje s @context čija je prva vrijednost zajednički rječnik vjerodajnica, pa pojmovi koji su svim vjerodajnicama zajednički, izdavatelj, subjekt, datumi valjanosti i podaci o statusu, svugdje znače isto.

Sve izvan toga dolazi iz drugog rječnika. Sveučilište jedan objavljuje za polja diploma, gospodarska komora jedan za polja o registraciji tvrtki. Provjeritelj kojem su važne diplome učitava prvi, onaj kojem su važni podaci o tvrtkama učitava drugi, i nijedan se ne mora mijenjati kad drugi doda polje.

Upravo to omogućuje jednom formatu vjerodajnica da nosi podatke koje nitko nije predvidio dok je format nastajao, a to je svojstvo koje otvoreni ekosustav treba, a zatvoreni profil ne.

Potpisivanje povezanih podataka

Vjerodajnicu treba i potpisati, a podatkovni model tu namjerno ostavlja izbor. Omotni dokaz pakira cijelu vjerodajnicu u spremnik potpisa poput JWT-a. Bajtovi se potpisuju točno onakvi kakvi jesu, pa sve što ih usput presloži ili preoblikuje razbija potpis.

Ugrađeni dokaz Data Integrity radi obrnuto. Dokument se najprije dovodi u kanonski oblik, koji definira RDF Dataset Canonicalization i koji je od 21. svibnja 2024. W3C Recommendation, a potpis pokriva taj oblik umjesto bajtova. Budući da kanonski oblik ne ovisi o redoslijedu ključeva, razmacima ni o tome koje kratke nazive @context slučajno koristi, potpis preživi i to da se dokument drugdje ponovno zapiše.

Gdje se uklapa u EUDI Wallet

Ne ondje gdje većina pretpostavlja. Architecture and Reference Framework za europsku lisnicu navodi dva formata vjerodajnica, SD-JWT VC i mdoc, i nijedan od njih nije JSON-LD. Organizacija koja danas izdaje u EUDI Wallet na putu neće naići ni na jedan @context.

Razlog je izvedivost. Oba formata imaju čvrstu strukturu, jedan mehanizam potpisa i nijedan dokument koji bi provjeritelj morao dohvatiti prije nego što išta može provjeriti. Za lisnicu koja radi na telefonu i provjeritelja koji mora odgovoriti u milisekundama to vrijedi više od otvorenog rječnika.

JSON-LD zaslužuje svoje mjesto ondje gdje podaci moraju putovati izvan ekosustava koji ih je definirao: putovnice proizvoda i podaci opskrbnog lanca, međusektorski pilot projekti i vrste vjerodajnica koje nijedan središnji profil nikada neće nabrojiti. Ta se dva svijeta preklapaju češće nego što se natječu, a organizacije koje rade u oba obično završe podržavajući oba.

Onaj drugi JSON-LD, koji ste već koristili

Davno prije vjerodajnica JSON-LD je postao način na koji web mjesto tražilici govori o čemu je stranica. Njegov blok u izvornom kodu stranice, s rječnikom schema.org, ono je što stranicu pretvara u prepoznati članak, proizvod, događaj ili organizaciju. Ova stranica nosi takav blok.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "JSON-LD objašnjen",
  "description": "Što JSON-LD dodaje običnom JSON-u, kako @context svakom polju daje jedno značenje i gdje ga koriste provjerljive vjerodajnice.",
  "image": "https://www.credenco.com/images/og-default.jpg",
  "datePublished": "2026-10-15",
  "dateModified": "2026-10-15",
  "inLanguage": "hr",
  "mainEntityOfPage": "https://www.credenco.com/hr/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"
    }
  }
}

Isti je to format s drugim rječnikom i to je najjasniji način da se vidi poanta. Nitko se ovdje nije ni s jednom tražilicom ni oko čega dogovorio. @context pokazuje na schema.org, tražilica taj rječnik već poznaje, a stranicu razumije strana s kojom nikada nije razgovarala. Vjerodajnica koja prelazi granicu radi točno isto.

Što vas to košta

Kontekst mora biti dostupan. Provjeritelj koji ga dohvaća u trenutku provjere dodao je mrežnu ovisnost sigurnosnoj odluci, a onaj tko taj dokument poslužuje može promijeniti ono što vjerodajnica naizgled govori. Stvarne implementacije fiksiraju kontekste koje prihvaćaju i isporučuju ih sa softverom umjesto da ih razrješavaju uživo.

I kanonizacija je pravi posao. Pretvoriti dokument u kanonski skup podataka prije potpisivanja znatno je više koda nego potpisati bajtove, a načini na koje može zakazati suptilni su. Dokumenti su uz to veći, što počinje biti važno na QR kodu ili pri NFC dodiru.

Ništa od toga ne čini JSON-LD pogrešnim izborom. Čini ga izborom: platite otvorene rječnike ondje gdje podaci moraju nadživjeti dogovor koji ih je stvorio, i izostavite ih ondje gdje čvrsti profil već govori sve što dvjema stranama treba.

Što to znači za vas

Izdavatelj

Izdavanje u EUDI Wallet znači SD-JWT VC ili mdoc, a JSON-LD nikada ne dolazi na red. Izdavanje u ekosustav W3C pretvara vaš @context u dugoročnu obvezu: on je javna definicija vaših polja, a njegova promjena razbija svakog provjeritelja koji je staru spremio u predmemoriju.

Provjeritelj

Odlučite koje kontekste prihvaćate i isporučite ih sa svojim softverom. Dohvatiti jedan tijekom provjere čini udaljeni poslužitelj dijelom vaše sigurnosne odluke i stavlja mrežni poziv usred vašeg vremena odgovora.

Razvojni programer

Čitajte JSON-LD dokument kao obični JSON kad vam treba samo jedno polje, a za punim procesorom posegnite tek ondje gdje stvarno proširujete ili kanonizirate. Većina složenosti koju ljudi pripisuju JSON-LD-u leži u putu potpisivanja, a ne u putu čitanja.

Povezani pojmovi

Često postavljana pitanja

Je li JSON-LD i dalje samo JSON?

Jest. Svaki JSON-LD dokument valjan je JSON, a softver koji treba pročitati samo jedno polje može ga tako i tretirati. Dodatna mehanika dolazi na red tek kada dokument proširite u puni oblik ili ga kanonizirate radi potpisa, što većina koda koji čita vjerodajnicu nikada ne radi.

Koristi li EUDI Wallet JSON-LD?

Ne. Architecture and Reference Framework navodi SD-JWT VC i mdoc kao formate vjerodajnica i nijedan od njih ne koristi JSON-LD. Važan je za ekosustave W3C s provjerljivim vjerodajnicama, za putovnice proizvoda i za podatke opskrbnog lanca, a ne za samu europsku lisnicu.

Preuzima li provjeritelj @context svaki put?

Ne bi trebao. Dohvaćanje konteksta tijekom provjere stavlja mrežni poziv usred sigurnosne odluke i udaljenom poslužitelju daje mogućnost da promijeni ono što dokument naizgled govori. Implementacije fiksiraju kontekste koje prihvaćaju i isporučuju ih sa softverom, što uklanja i kašnjenje.

Je li to isti JSON-LD koji čitaju tražilice?

Isti format s drugim rječnikom. Strukturirani podaci na web stranici svoj @context usmjeravaju na schema.org, dok ga vjerodajnica usmjerava na rječnik vjerodajnica i na sve drugo što joj treba. Pravila obrade identična su u oba slučaja.

Izvori

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

Ova je stranica informativna i ne predstavlja pravni savjet. Za mjerodavne upute pogledajte izravno specifikacije W3C-a.

Razgovarajte s nama o formatima vjerodajnica i interoperabilnosti