Nätverk & systemintegration/Kursinnehåll
SV
← Till kursöversikten
ÄMNE 04 / 09 · Integration

JSON, XML & datakontrakt

Strukturera, omvandla och validera data så att alla delar av systemet förstår varandra.

13 min läsning5 kunskapsfrågorPraktisk övning
DET HÄR TAR DU MED DIG
  • Serialisera och parsa JSON och XML.
  • Skilja syntax, struktur och semantik.
  • Formulera ett datakontrakt och begripliga fel.
Datamodell
JSON / XML
Validerad data
Samma data. Samma förståelse. · Ett förenklat flöde
01 — UTFORSKA

Data är inte sitt format

En intern datamodell kan vara en struct eller klass. Serialisering gör modellen till ett överförbart format. Parsning tolkar texten tillbaka till data. Samma mätning kan uttryckas i både JSON och XML.

EXEMPEL
JSON
{"sensorId":"temp-01","value":21.7,"unit":"C"}

XML
<reading>
  <sensorId>temp-01</sensorId>
  <value>21.7</value>
  <unit>C</unit>
</reading>
02 — UTFORSKA

Tre kontroller innan data får användas

Att texten kan parsas betyder inte att innehållet är korrekt. Validera i tre steg innan du sparar data eller använder det för styrning.

  • Syntax: går texten att parsa som JSON eller XML?
  • Struktur och typ: finns sensorId, value och unit med rätt typer?
  • Semantik: är temperatur och enhet rimliga i den här domänen?
03 — UTFORSKA

Skriv ner överenskommelsen

I kursens temperaturkontrakt är sensorId en icke-tom sträng, value ett tal mellan −50 och 100 och unit exakt C. Talet 21.7 och strängen "21.7" är olika typer i JSON.

JSON Schema kan kontrollera JSON och XSD kan beskriva XML-struktur och typer. Alla domänregler uttrycks inte automatiskt av ett schema. Content-Type anger vilken representation mottagaren ska tolka.

EXEMPEL
sensorId: string, minst 1 tecken
value: number, −50 ≤ value ≤ 100
unit: "C"
Alla tre fält är obligatoriska.
04 — UTFORSKA

Ett fel som hjälper avsändaren

Ett bra felsvar anger vad som är fel, var felet finns och hur det kan rättas. Svara exempelvis att value måste vara ett tal i stället för att bara säga att något gick fel. Behåll samma regler genom hela IoT-kedjan.

EXEMPEL
{"error":"value måste vara ett tal","field":"value"}
FRÅN KUNSKAP TILL HANDLING

Prova själv

Ta med ämnet in i ditt eget IoT-case. Dokumentera vad du upptäcker.

  1. Skriv datakontraktet med fält, typ, obligatoriskhet och gränser.
  2. Skapa samma mätning i JSON och XML och parsa båda till samma modell.
  3. Testa saknat sensorId, en sträng som value och temperatur 150.
  4. Koppla valideringen till API:t och dokumentera felsvaren.
DIN TUR

Testa dina kunskaper

Stanna upp en stund. Vad har fastnat?

01JSON-texten går att parsa, men value är "varmt". Vilken kontroll fångar problemet?

02Vad kallas omvandlingen från en intern datamodell till JSON?

03Mätningen har value: 150 som ett JSON-tal. Vilken kontroll avvisar den enligt kursens temperaturkontrakt?

04Vilket schemaformat används för att beskriva XML-struktur och typer?

05Vilket felsvar hjälper avsändaren att rätta en ogiltig mätning?

Fortsätt vara nyfiken

Originalmaterial och utvalda källor för dig som vill gå djupare.

Föreläsningsbilder · Ämne 4Joakim Englund · Systementor AB · PDF på svenskaSkapa ditt första JSON SchemaJSON Schema · Engelska

Ett steg närmare helheten.

Markera ämnet när du känner dig redo.

Hitta nästa sak att förstå.

Introduktion & MQTTÄmne 1 · GrundernaPortar & socketsÄmne 2 · NätverkHTTP(S) & API:erÄmne 3 · IntegrationJSON, XML & datakontraktÄmne 4 · IntegrationSystemintegration & SOAÄmne 5 · IntegrationNätverk & segmenteringÄmne 6 · NätverkSäker kommunikationÄmne 7 · SäkerhetTrådar & återanslutningÄmne 8 · RobusthetLoggning & övervakningÄmne 9 · Robusthet