Skip to main content

JSON File **

In deze opdracht ga je een JSON-file analyseren. JSON is een file formaat om data op te slaan. De data wordt gestructureerd opgeslagen en is leesbaar (als txt). Het formaat lijkt een beetje op een assiociative array en wordt veel gebruikt bij REST API's.

De opdracht

Van een onderzoeksbureau heb je twee JSON-bestanden gehad. Het bestand bevat gegevens van Corona patiënten. Omwille van de privacy van de patiënten worden geen namen gebruikt, maar anonieme patiëntnummers.

Aan elke patiënt wordt een codering toegekend. In het schema hieronder worden de coderingen toegelicht.

Codering Betekenis
0 Vermoedelijk Covid-19
1 Covid-19 vastgesteld - patiënt ligt op gewone afdeling
2 Covid-19 vastgesteld - patiënt ligt op de intensive care
3 Patiënt is genezen
4 Patiënt is overleden

Je krijgt een functie waarmee je het JSON-bestand kan inlezen. De functie krijgt de file naam mee als parameter en de return value is een assiociative array. Het array ziet er bijvoorbeeld als volgt uit:

Key Value Betekenis
p-nc-199134 3 Patiënt p-nc-199134 is genezen
p-nc-199114 2 Patiënt p-nc-199114 ligt op IC
p-nc-199126 0 Patiënt p-nc-199126 heeft vermoedelijk Covid-19

Je krijgt twee bestanden:

p-nc-191.json bestand van een dag
p-nc-192.json bestand van de volgende dag

De bestanden staan op deze pagina - links.

Met de functie die hieronder staat kan je het JSON-bestand lezen en krijg je een assiociative array.

<?php

function getData($file) { // JSON bestand
  if ( file_exists($file) ) {
    return(json_decode(file_get_contents($file), true)); // return assiociative array
  } else {
    return(0);
  }
}

Lees met behulp van de gegeven functie de bestanden in.

De vragen

De opdrachtgever heeft de volgende vragen.

Vraag 1, overzicht

Maak een overzicht van beide dagen waarbij van elke categorie wordt aangegeven hoeveel patiënten er zijn.
Bijvoorbeeld:
Er zijn 212 patiënten die vermoedelijk Covid-19 hebben.
Er zijn 376 patiënten waarbij Covid-19 is vastgesteld.
etc.
(het liefst heeft de opdrachtgever deze gegevens netjes in een tabel)

Vraag 2, fouten vinden

Het blijkt dat er bij een paar patiënten een fout is gemaakt bij de invoer van hun status. Hun status is dus niet gelijk aan 1,2,3 of 4. Laat zien om welke patiënten dit gaat en wat de foutief ingevoerde code is. Heb je misschien een idee wat de juiste code zou moeten zijn? Leg uit.

Vraag 3, fouten corrigeren

Met de volgende functie kun je een assiosiative array wegschrijven als JSON-file

file_put_contents("file_name",json_encode($array))

 

Kun je de fouten die je bij (2) hebt gevonden corrigeren en het bestand wegschrijven. Doe dit voor beide bestanden.

Vraag 4a, veranderingen

Er zijn op de tweede dag helaas drie patiënten overleden. Zoek op welke patiënten dit zijn (patiëntnummers).

Vraag 4b, veranderingen

Wat was de vorige status van de drie overleden patiënten, komen ze van de IC of wat was hun vorige status?

--