chromo23
Neues Mitglied
Nachdem mir hier beim letzten Mal so gut geholfen wurde und ich gerade bei einem ähnlichen Thema am Verzweifeln bin, wende ich mich mal wieder an das Forum.
Ich frage json werte ab:
Das funktioniert sehr gut.
Nun möchte ich eine Übersicht der vorhandenen Sensoren erstellen:
Hier die Json-Ausgabe:
Uns so sollte es dann aussehen:
Ich habe zwei Wege probiert, scheitere aber immer daran, dass es Werte in mehr als eine Ebene gibt (TaskValues is ein Array mit x Unterpunkten) und daran, dass es "Sensoren" gibt, die keine TaskValues Eintrag besitzen.
Einer der Versuche bisher:
Da zeigt der natürlich alles an was es gibt..
Alles was es an Beispielen zu diesem Thema gibt behandelt leider nicht das Problem eines Arrays bei der Abfrage.
Kann mir jemand helfen? Wichtig ist, dass wenn TaskValues (siehe z.B. Display) nicht vorhanden, dieser Wert leer bleibt
Und wie kann ich auf einfache Weise bestimmte Sensoren nach Namen dabei ausklammern. z.B
pseudocode:
Ergebnis:
Ich frage json werte ab:
Code:
<script onload="setInterval()">
setInterval(
async function sensors() {
response = await fetch("json");
myJson = await response.json();
kwRem = myJson.Sensors[2].TaskValues[0].Value;
document.getElementById("kwRId").innerHTML = kwRem;
}, 1000);
</script>
Nun möchte ich eine Übersicht der vorhandenen Sensoren erstellen:
Hier die Json-Ausgabe:
Code:
{
"Sensors":[
{
"TaskName":"Display",
"TaskNumber":1
},
{
"TaskValues": [
{"ValueNumber":1,
"Name":"Counter",
"Value":0
}],
"TaskName":"Rotary",
"TaskNumber":2
},
{
"TaskValues": [
{"ValueNumber":1,
"Name":"Temperature",
"Value":20.7
},
{"ValueNumber":2,
"Name":"Humidity",
"Value":55
},
{"ValueNumber":3,
"Name":"Pressure",
"Value":1001.98
}],
"TaskName":"sensor",
"TaskNumber":3
},
],
}
Uns so sollte es dann aussehen:
Display | |
Rotary | Counter:1 |
sensor | Temperature: 20.7 Humidity: 55 Pressure: 1001.98 |
Ich habe zwei Wege probiert, scheitere aber immer daran, dass es Werte in mehr als eine Ebene gibt (TaskValues is ein Array mit x Unterpunkten) und daran, dass es "Sensoren" gibt, die keine TaskValues Eintrag besitzen.
Einer der Versuche bisher:
Code:
<script onload="setInterval()">
setInterval(
async function () {
response = await fetch("json");
myJson = await response.json();
let htmlS = '';
myJson.Sensors.forEach(sensor => {
Object.entries(sensor).forEach(([key, value]) => {
console.log(`${key} ${value}`);
htmlS += `<a id="${key}">${value}</a>`;
});
document.getElementById('sensorsMenu').innerHTML = htmlS;
});
}, 1000);
</script>
Da zeigt der natürlich alles an was es gibt..
Alles was es an Beispielen zu diesem Thema gibt behandelt leider nicht das Problem eines Arrays bei der Abfrage.
Kann mir jemand helfen? Wichtig ist, dass wenn TaskValues (siehe z.B. Display) nicht vorhanden, dieser Wert leer bleibt
Und wie kann ich auf einfache Weise bestimmte Sensoren nach Namen dabei ausklammern. z.B
pseudocode:
Code:
exclude: "Rotary","Display"
sensor | Temperature: 20.7 Humidity: 55 Pressure: 1001.98 |
Zuletzt bearbeitet: