JSON, Fetch, Javascript in HTML und undefinierter oder leerer String [Duplikat]HTML

HTML-Programmierer
Guest
 JSON, Fetch, Javascript in HTML und undefinierter oder leerer String [Duplikat]

Post by Guest »

Ich habe in einem Forum nach Problemen im Zusammenhang mit JSON und der Abruffunktion gesucht. Es gibt viele davon, aber es fällt mir schwer, das zu verstehen. Was ich brauche, ist die URL „/api“ abzurufen, die Folgendes zurückgibt:

Code: Select all

{"lux": 0, "pressure": 0.0, "TVOC": 0, "temp": 0.0, "hum": 0.0, "AQI": 0, "eCO2": 0}
Ich möchte Felder in einer HTML-Tabelle mit diesen Werten füllen. Ich habe mit einer einfachen Sache in meinem HTML-Code begonnen:

Code: Select all

async function get_data() {
await fetch('/api')
.then(resolve => resolve.json())
.then(data => jdata = data);
return jdata;
}

const JD = () => {
fetch('/api')
.then(resolve => resolve.json())
.then(data => jdata = data);
}

//let raw_data='{"lux":0, "pressure":0, "TVOC":0, "temp":0, "hum":0, "AQI":0, "eCO2":0}';
//jdata=JSON.parse(raw_data);
let raw_data = get_data();
jdata = JSON.parse(raw_data);

console.log(raw_data);
console.log(jdata);
console.log(JD);
console.log(jdata.lux);

document.getElementById("dane_temp").innerHTML = jdata.temp;
Wenn ich das mache, erhalte ich die Fehlermeldung

Uncaught SyntaxError: JSON.parse: unerwartetes Zeichen in Zeile 1, Spalte 2 der JSON-Datenzeile

also kommentiere ich die JSON.parse-Zeile. Das Problem ist, dass raw_data ein promise-Objekt ist und ich die JSON-Daten nicht richtig zuweisen kann jdata-Variable.
Ich habe im Allgemeinen Probleme damit, diese verschachtelten Objekte in etwas umzuwandeln, das ich analysieren kann. Wenn ich eine Zeichenfolge zuweise, wie im auskommentierten Abschnitt, kann ich JSON.parse ausführen und alles funktioniert, aber dann ist raw_data kein Objekt, sondern einfach die Zeichenfolge. Aber bei dieser asynchronen Funktion steht Folgendes in den raw_data:

Code: Select all

Promise { : "pending" }
​
: "fulfilled"
​
: Object { lux: 0, pressure: 0, TVOC: 0, … }
​
: Promise.prototype { … }
JD erhält ein function-Objekt und ich sehe es nicht alle darin enthaltenen Daten.
Ich habe verschiedene Beiträge in diesem Forum durchgesehen und aufgrund der Tatsache, dass ich normalerweise nicht in JS programmiere, habe ich Probleme zu verstehen, wie man eine Zeichenfolge aus diesem Versprechensobjekt herauszieht.
Können Sie mir dabei helfen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post