Json-file omzetten in variabelen lukt niet.

Status
Niet open voor verdere reacties.

backnext

Gebruiker
Lid geworden
29 apr 2016
Berichten
176
Ik heb met 'read-excel-file' een excel-bestand geüpload als json-bestand. Dit is het resultaat:
Code:
{
  "rows": [
    {
      "weekdag": "maandag",
      "dagdeel": "voormiddag",
      "activiteit": "sport",
      "naam1": "An Pieters",
      "naam2": "Yvan Scheerder",
      "naam3": "Bas Limpens",
      "naam4": "Petra Pillens",
      "naam5": "Jan Teulens",
      "naam6": "Herman Dejonge"
    },
    {
      "weekdag": "maandag",
      "dagdeel": "voormiddag",
      "activiteit": "boerderij",
      "naam1": "Bas Limpens",
      "naam2": "An Pieters",
      "naam3": "Benjamin Derksen",
      "naam4": "Wouter Hendrik",
      "naam5": "Jennah Lippens",
      "naam6": "Jan Teulens"
    }
],
  "errors": []
}
Ik download die file met:
Code:
  var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            fnHandleText2(this.responseText);
        }
    };
    xhttp.open("GET", TextFileName, true);
    xhttp.send();
Hoe kan ik uit deze json-file de verschillende elementen halen en toewijzen aan vars?
Code:
var wkdg1 = myJSON.rows.weekdag;
lukt maar niet.
 
Als ik als Json-file onderstaande neem
Code:
{
  "weekdag": "maandag",
  "dagdeel": "voormiddag",
  "activiteit": {
    "naam1": "An Pieters",
    "naam2": "Yvan Scheerder",
    "naam3": "Bas Limpens",
    "naam4": "Petra Pillens",
    "naam5": "Jan Teulens",
    "naam6": "Herman Dejonge"
  }
}
dan lukt het met :
Code:
            jsontekst = this.responseText;
            jsonResponse = JSON.parse(jsontekst);
            console.log("weekdag = " + jsonResponse.weekdag);
en krijg ik als antwoord in de console: maandag.
Maar als de file op deze manier is opgebouwd:
Code:
{
  "rows": [
    {
      "weekdag": "maandag",
      "dagdeel": "voormiddag",
      "activiteit": "sport",
      "naam1": "An Pieters",
      "naam2": "Yvan Scheerder",
      "naam3": "Bas Limpens",
      "naam4": "Petra Pillens",
      "naam5": "Jan Teulens",
      "naam6": "Herman Dejonge"
    },
    {
      "weekdag": "maandag",
      "dagdeel": "voormiddag",
      "activiteit": "boerderij",
      "naam1": "Bas Limpens",
      "naam2": "An Pieters",
      "naam3": "Benjamin Derksen",
      "naam4": "Wouter Hendrik",
      "naam5": "Jennah Lippens",
      "naam6": "Jan Teulens"
    }
],
  "errors": []
}
lukt het niet.
Hoe moet ik jsonResponse.???.weekdag formuleren?
 
beetje gezocht geprobeerd en gevonden:
Code:
  console.log("weekdag = " + jsonResponse.rows[2].weekdag);
 
Alle stukjes die je nodig hebt staan hierboven in de diverse berichtjes. Alles bij elkaar geveegd krijg je dit
Code:
function LeesJsonBestand(bestandsnaam) {
    var bestand = new XMLHttpRequest();
    bestand.open("GET", bestandsnaam, true);
    bestand.onreadystatechange = function() {
        if (bestand.readyState === 4 && bestand.status == "200") {
            VerwerkJsonData(bestand.responseText);
        }
    }
    bestand.send(null);
}

function VerwerkJsonData(jsonData) {
    var data = JSON.parse(jsonData);
    var rows = data.rows;
    var errors = data.errors;
    if (errors.length > 0) {
        document.write("Controleer bestand bij Errors.");
    } else {
        console.log(rows[0].naam3);
        for (var i=0; i < rows.length; i++) {
            document.write(rows[i].naam1 + '<br>');
        }
    }
}

var JsonBestand = "excel_export.json"; // zelf invullen, naam en extensie maken niet uit.
LeesJsonBestand(JsonBestand);

Scu6. Have fun.
 
Laatst bewerkt:
bedankt Bron,
Jouw heldere code voelt als een frisse wind in mijn hoofd :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan