json Daten in JavaScript auslesen und an html Elemente weiterleiten?
Hi,
mehr schlecht als recht arbeite ich mich gerade durch json und habe tatsächlich mittlerweile herausfunden, dass man zum Laden einer json-Datei ohne jQuery folgenden Ansatz zu brauchen scheint:
function loadJSON(callback) {var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json"); xobj.open('GET', 'data.json', true); // Replace 'my_data' with the path to your file xobj.onreadystatechange = function () { if (xobj.readyState == 4 && xobj.status == "200") { // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode callback(xobj.responseText); } }; xobj.send(null);
}
Wie ich damit dann allerdings Objekte und values auslese und weiterleite, ist mir schleierhaft.
Hier ist erst einmal der json Code
{"employees":
[
{
"firstName": "John",
"lastName": "Doe"
},
{
"firstName":"Anna",
"lastName":"Smith"
},
{
"firstName":"Peter",
"lastName":"Jones"
}
]
}
Meine Idee war ja etwas wie document.getElementbyID oder halt byClassName, um den Content im DOM zu verteilen. Aber irgendwas scheint mir zu fehlen.
Pseudocode mäßig wäre halt sowas schön: getElementbyID('title').data(firstName[0]) Irgendwie so halt ...
Was ich bisher gefunden habe, waren nur Kurzeinleitungen, wie ich den Code in der Konsole ausspucke, js Arrays erstelle (warum auch immer die Leute das in einem json Tutorial als Lösung anbieten) oder html Elemente in JavaScript mit dem json Inhalt erstelle. Wie gesagt, würde ich jedoch gerne den json Inhalt an meine bereits existierenden html Elemente weitergeben.
ps. Wenn ihr dazu eine jade-Lösung habt, wäre das natürlich noch um so prickelnder.
2 Antworten
https://wiki.selfhtml.org/wiki/JavaScript/DOM/Element/innerHTML
bzw. vorzugsweise die textContent-Eigenschaft ändern:
https://developer.mozilla.org/de/docs/Web/API/Node/textContent
Es ist ein Array von Angestellten, nicht ein Objekt employee mit 2 Arrays.
Nimm statt
employees.firstName[0]
employees[0].firstName
Stimmt !
Funktioniert jetzt, vielen Dank. =) Während dessen habe ich auch gelesen, dass ich in diesem Fall auch data.employees schreiben kann, da die Daten wie von mir angegeben als "data" weitergegeben werden.
So für alle, die wie ich damit Probleme haben und über Google hier gelandet sind.
Falls du ein kostenloses tool zum formatieren und validieren suchst dann
https://jsonformatieren.de/?ref=gutefrage
kannst du auch hiermit deine JSON strings validieren ob alles richtig ist zum weiterverarbeiten
textContent ist ein guter Tipp, danke.
Nur weiss ich immer noch nicht, welche Syntax die richtige ist.
Um mal beim oben genannten Beispiel zu bleiben, habe ich mit jQuery folgendes ausprobiert:
Ohne Erfolg.