NEWS
JSON - mal wieder
-
Grüß Euch!
In einem Datenpunkt steht folgender JSON String:
script.js.Zeug.MeteoAlarm: [{"Event":"Windwarnung","Description":"Starker Wind mit Spitzen von 60 bis 80 km/h ist zu erwarten.","Level":2,"Effective":"Mo. 00:00 - Di. 00:00","Icon":"/meteoalarm.admin/icons/black/t1.png","AlarmType":"Wind"}]Ich möchte zB das Event auslesen:

Ich hab schon viele Variationen probiert, nichts klappt. Und ja, ich hab im Forum gesucht und gegoogelt.
Ein anders Beispiel, auch hier wird nichts ausgegeben. Hat jemand einen Tipp? Im schlimmsten Fall hole ich mir die Werte über Stringsearch.
Danke Euch, Andi :)const jsonString = '{ "id": 100, "tC": "18", "tF": 65.3 }'; // Parse the JSON string const jsonData = JSON.parse(jsonString); // Extract the value of tC let temperatureCelsius = jsonData.tC; // Check if tC is a string and convert it to a number if (typeof temperatureCelsius === "string") { const parsedValue = parseFloat(temperatureCelsius); if (!isNaN(parsedValue)) { temperatureCelsius = parsedValue; } else { console.error("Invalid temperature value in tC"); } } console.log("Temperature in Celsius:", temperatureCelsius); -
Grüß Euch!
In einem Datenpunkt steht folgender JSON String:
script.js.Zeug.MeteoAlarm: [{"Event":"Windwarnung","Description":"Starker Wind mit Spitzen von 60 bis 80 km/h ist zu erwarten.","Level":2,"Effective":"Mo. 00:00 - Di. 00:00","Icon":"/meteoalarm.admin/icons/black/t1.png","AlarmType":"Wind"}]Ich möchte zB das Event auslesen:

Ich hab schon viele Variationen probiert, nichts klappt. Und ja, ich hab im Forum gesucht und gegoogelt.
Ein anders Beispiel, auch hier wird nichts ausgegeben. Hat jemand einen Tipp? Im schlimmsten Fall hole ich mir die Werte über Stringsearch.
Danke Euch, Andi :)const jsonString = '{ "id": 100, "tC": "18", "tF": 65.3 }'; // Parse the JSON string const jsonData = JSON.parse(jsonString); // Extract the value of tC let temperatureCelsius = jsonData.tC; // Check if tC is a string and convert it to a number if (typeof temperatureCelsius === "string") { const parsedValue = parseFloat(temperatureCelsius); if (!isNaN(parsedValue)) { temperatureCelsius = parsedValue; } else { console.error("Invalid temperature value in tC"); } } console.log("Temperature in Celsius:", temperatureCelsius);@gukerl wieso 1.Event?

0.Event müsste passen
steht die Einleitung vor der öffnenden eckigen Klammer tatsächlich im DP?
das darf nicht -
@gukerl wieso 1.Event?

0.Event müsste passen
steht die Einleitung vor der öffnenden eckigen Klammer tatsächlich im DP?
das darf nicht@homoran
So ist es im Adapter drinnen:[ { "Event": "Windwarnung", "Description": "Starker Wind mit Spitzen von 60 bis 80 km/h ist zu erwarten.", "Level": 2, "Effective": "Mo. 00:00 - Di. 00:00", "Icon": "/meteoalarm.admin/icons/black/t1.png", "AlarmType": "Wind" } ]Es klappt garnichts:
Für mich ist eigentlich das Beispiel wichtig:
Vom Shelly bekomme ich diesen JSON im Datenpunkt:{ "id": 101, "tC": 16.7, "tF": 62 }Auch hier keine Chance (im Startpost das JS). Ich hab Variationen probiert. Debug zeigt garnichts an.

Entweder passt mit meinem Adapter was nicht oder...? Keine Ahnung.
-
@homoran
So ist es im Adapter drinnen:[ { "Event": "Windwarnung", "Description": "Starker Wind mit Spitzen von 60 bis 80 km/h ist zu erwarten.", "Level": 2, "Effective": "Mo. 00:00 - Di. 00:00", "Icon": "/meteoalarm.admin/icons/black/t1.png", "AlarmType": "Wind" } ]Es klappt garnichts:
Für mich ist eigentlich das Beispiel wichtig:
Vom Shelly bekomme ich diesen JSON im Datenpunkt:{ "id": 101, "tC": 16.7, "tF": 62 }Auch hier keine Chance (im Startpost das JS). Ich hab Variationen probiert. Debug zeigt garnichts an.

Entweder passt mit meinem Adapter was nicht oder...? Keine Ahnung.
@gukerl mangels Adapter-DP eine Variable mit dem I halt:

und

-
Grüß Euch!
In einem Datenpunkt steht folgender JSON String:
script.js.Zeug.MeteoAlarm: [{"Event":"Windwarnung","Description":"Starker Wind mit Spitzen von 60 bis 80 km/h ist zu erwarten.","Level":2,"Effective":"Mo. 00:00 - Di. 00:00","Icon":"/meteoalarm.admin/icons/black/t1.png","AlarmType":"Wind"}]Ich möchte zB das Event auslesen:

Ich hab schon viele Variationen probiert, nichts klappt. Und ja, ich hab im Forum gesucht und gegoogelt.
Ein anders Beispiel, auch hier wird nichts ausgegeben. Hat jemand einen Tipp? Im schlimmsten Fall hole ich mir die Werte über Stringsearch.
Danke Euch, Andi :)const jsonString = '{ "id": 100, "tC": "18", "tF": 65.3 }'; // Parse the JSON string const jsonData = JSON.parse(jsonString); // Extract the value of tC let temperatureCelsius = jsonData.tC; // Check if tC is a string and convert it to a number if (typeof temperatureCelsius === "string") { const parsedValue = parseFloat(temperatureCelsius); if (!isNaN(parsedValue)) { temperatureCelsius = parsedValue; } else { console.error("Invalid temperature value in tC"); } } console.log("Temperature in Celsius:", temperatureCelsius);@gukerl sagte in JSON - mal wieder:
Ich hab schon viele Variationen probiert, nichts klappt
Du hast die "richtige" Variante vergessen: Indizes in JSON-Arrays beginnen bei
0.Wie @Homoran schon schrieb: Das funzt einwandfrei:

Vom Shelly bekomme ich diesen JSON im Datenpunkt:
Das wiederum ist kein Array. Also wird ohne Index gelesen:
JSON.parse(val).tCIch persönlich würde mir da passende Alias-DP anlegen und mit der Lesekonvertierung die Werte aus dem JSON holen.

-
@gukerl sagte in JSON - mal wieder:
Ich hab schon viele Variationen probiert, nichts klappt
Du hast die "richtige" Variante vergessen: Indizes in JSON-Arrays beginnen bei
0.Wie @Homoran schon schrieb: Das funzt einwandfrei:

Vom Shelly bekomme ich diesen JSON im Datenpunkt:
Das wiederum ist kein Array. Also wird ohne Index gelesen:
JSON.parse(val).tCIch persönlich würde mir da passende Alias-DP anlegen und mit der Lesekonvertierung die Werte aus dem JSON holen.

@codierknecht sagte in JSON - mal wieder:
Ich persönlich würde mir da passende Alias-DP anlegen und mit der Lesekonvertierung die Werte aus dem JSON holen.
rischtisch, aber hier geht's um Blockly.
Oftmals sind solche Dinge, die auch anders lösbar sind, dazu da um sich mit Blockly vertraut zu machen
-
@Gukerl
Zum Ausprobieren hilft das hier: https://jsonpathfinder.com/Der sagt Dir auch gleich, wie einzelne Elemente anzusprechen sind.

-
@gukerl sagte in JSON - mal wieder:
Ich hab schon viele Variationen probiert, nichts klappt
Du hast die "richtige" Variante vergessen: Indizes in JSON-Arrays beginnen bei
0.Wie @Homoran schon schrieb: Das funzt einwandfrei:

Vom Shelly bekomme ich diesen JSON im Datenpunkt:
Das wiederum ist kein Array. Also wird ohne Index gelesen:
JSON.parse(val).tCIch persönlich würde mir da passende Alias-DP anlegen und mit der Lesekonvertierung die Werte aus dem JSON holen.

@codierknecht sagte in JSON - mal wieder:
Das wiederum ist kein Array. Also wir ohne Index gelesen:
Editör!
Deswegen hatte ich die Seite von jsonviewer.stack.hu gezeigt auf der man schön die Struktur sehen kann.
-
@codierknecht sagte in JSON - mal wieder:
Das wiederum ist kein Array. Also wir ohne Index gelesen:
Editör!
Deswegen hatte ich die Seite von jsonviewer.stack.hu gezeigt auf der man schön die Struktur sehen kann.
@homoran sagte in JSON - mal wieder:
Editör!
Sorry :hushed:
Macht der jsonpathfinder auch. Netterweise zeigt der auch gleich (fast) die richtige Syntax für den Zugriff ;-)
Jeder hat da halt so seine Vorlieben :-)
-
@homoran sagte in JSON - mal wieder:
Editör!
Sorry :hushed:
Macht der jsonpathfinder auch. Netterweise zeigt der auch gleich (fast) die richtige Syntax für den Zugriff ;-)
Jeder hat da halt so seine Vorlieben :-)
Ich hab jetzt ChatGPT befragt, wie denn die KI das auflöst, so stehts im Datenpunkt:
{ "id": 100, "tC": 17.1, "tF": 62.8 }Klappt nicht, der https://jsonviewer.stack.hu/ zeigt keinen Index.
const jsonString = '{ "id": 100, "tC": 18.5, "tF": 65.3 }'; // Parse the JSON string const jsonData = JSON.parse(jsonString); // Extract the value of tC const temperatureCelsius = jsonData.tC; console.log("Temperature in Celsius:", temperatureCelsius);Ich gebe auf :confused: und frag mich, wofür das ganze JSON Zeig im Blockly denn dann gut sein soll. Nachdem es aber mit JS auch nicht geht...?!?
-
Ich hab jetzt ChatGPT befragt, wie denn die KI das auflöst, so stehts im Datenpunkt:
{ "id": 100, "tC": 17.1, "tF": 62.8 }Klappt nicht, der https://jsonviewer.stack.hu/ zeigt keinen Index.
const jsonString = '{ "id": 100, "tC": 18.5, "tF": 65.3 }'; // Parse the JSON string const jsonData = JSON.parse(jsonString); // Extract the value of tC const temperatureCelsius = jsonData.tC; console.log("Temperature in Celsius:", temperatureCelsius);Ich gebe auf :confused: und frag mich, wofür das ganze JSON Zeig im Blockly denn dann gut sein soll. Nachdem es aber mit JS auch nicht geht...?!?
@gukerl sagte in JSON - mal wieder:
zeigt keinen Index
Warum auch? Ist ja kein Array.
Über einen Index greifst Du auf ein Array mit Objekten zu.Beachte den Unterschied:
const jsonString = '{"id": 100, "tC": 18.5, "tF": 65.3}'; const jsonArray = '[{"id": 100, "tC": 18.5, "tF": 65.3}, {"id": 101, "tC": 18.9, "tF": 61.2}]';In
jsonStringsteckt ein einzelnes Objekt. Auf dessen Properties kannst Du direkt zugreifen.
DasjsonArrayist eine Liste von Objekten. Da muss über den Index angegeben werden, das wievielte Objekt in der Liste gemeint ist.
Beachte: Der Index beginnt bei "0"!Edit
Ein Array erkennst Du daran, dass "außenrum" eckige Klammern zu finden sind.
Wie viele Elemente (Objekte) dann in der Liste stehen, ist egal. Der Zugriff benötigt einen Index - auch bei nur einem einzigen Objekt. -
Ich hab jetzt ChatGPT befragt, wie denn die KI das auflöst, so stehts im Datenpunkt:
{ "id": 100, "tC": 17.1, "tF": 62.8 }Klappt nicht, der https://jsonviewer.stack.hu/ zeigt keinen Index.
const jsonString = '{ "id": 100, "tC": 18.5, "tF": 65.3 }'; // Parse the JSON string const jsonData = JSON.parse(jsonString); // Extract the value of tC const temperatureCelsius = jsonData.tC; console.log("Temperature in Celsius:", temperatureCelsius);Ich gebe auf :confused: und frag mich, wofür das ganze JSON Zeig im Blockly denn dann gut sein soll. Nachdem es aber mit JS auch nicht geht...?!?
@gukerl sagte in JSON - mal wieder:
Nachdem es aber mit JS auch nicht geht...?!?
Der Code funktioniert einwandfrei ... wenn man den Fehler an entscheidender Stelle korrigiert:

-
Ich hab jetzt ChatGPT befragt, wie denn die KI das auflöst, so stehts im Datenpunkt:
{ "id": 100, "tC": 17.1, "tF": 62.8 }Klappt nicht, der https://jsonviewer.stack.hu/ zeigt keinen Index.
const jsonString = '{ "id": 100, "tC": 18.5, "tF": 65.3 }'; // Parse the JSON string const jsonData = JSON.parse(jsonString); // Extract the value of tC const temperatureCelsius = jsonData.tC; console.log("Temperature in Celsius:", temperatureCelsius);Ich gebe auf :confused: und frag mich, wofür das ganze JSON Zeig im Blockly denn dann gut sein soll. Nachdem es aber mit JS auch nicht geht...?!?
@gukerl sagte in JSON - mal wieder:
Ich gebe auf und frag mich, wofür das ganze JSON Zeig im Blockly denn dann gut sein soll
Aufgeben ist keine Option :grin:

Es gilt - wie immer: Kaum macht man's richtig, funktioniert's auch ;-) :grinning: -
Ich hab jetzt ChatGPT befragt, wie denn die KI das auflöst, so stehts im Datenpunkt:
{ "id": 100, "tC": 17.1, "tF": 62.8 }Klappt nicht, der https://jsonviewer.stack.hu/ zeigt keinen Index.
const jsonString = '{ "id": 100, "tC": 18.5, "tF": 65.3 }'; // Parse the JSON string const jsonData = JSON.parse(jsonString); // Extract the value of tC const temperatureCelsius = jsonData.tC; console.log("Temperature in Celsius:", temperatureCelsius);Ich gebe auf :confused: und frag mich, wofür das ganze JSON Zeig im Blockly denn dann gut sein soll. Nachdem es aber mit JS auch nicht geht...?!?
@gukerl sagte in JSON - mal wieder:
der https://jsonviewer.stack.hu/ zeigt keinen Index.
natürlich nicht!
ist hier auch nicht drin

nur das Attribut selber.@gukerl sagte in JSON - mal wieder:
Ich hab jetzt ChatGPT befragt,
reichen dir unsere Aussagen und Beispiele nicht?
-
@gukerl sagte in JSON - mal wieder:
Nachdem es aber mit JS auch nicht geht...?!?
Der Code funktioniert einwandfrei ... wenn man den Fehler an entscheidender Stelle korrigiert:

@codierknecht
Oidaaaaaaa.... ICH BIN WIRKLICH BLIND - Asche auf mein Haupt!! Das passiert, wenn man sich ganz woandershin konzentriert.Danke :)
P.S. Was bedeutet Oidaaaaaa ---> https://www.youtube.com/watch?v=iuXR53ex4iI ;)
-
@codierknecht
Oidaaaaaaa.... ICH BIN WIRKLICH BLIND - Asche auf mein Haupt!! Das passiert, wenn man sich ganz woandershin konzentriert.Danke :)
P.S. Was bedeutet Oidaaaaaa ---> https://www.youtube.com/watch?v=iuXR53ex4iI ;)
@gukerl sagte in JSON - mal wieder:
Was bedeutet Oidaaaaaa
Ich bin des Ausländischen durchaus mächtig :grin: :grin: