LabVIEWForum.de - Daten aus JSON einlesen

LabVIEWForum.de

Normale Version: Daten aus JSON einlesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich habe ein kleines Verständnis Problem mit diesen JSON Datensatz

{
"success": 1,
"data": [
["0x0000000000000000",0,0],
["0x0000000000000000",0,0],
...
]
}

1. Objekt = Numeric mit Namen "success"
2. Objekt = Array mit Namen "data"
--> Inhalt von "data" ein Array mit 'String, Num, Num' --> ist nicht möglich (verschiedene Datentypen in einem Array) !!

Was habe ich da falsch verstanden ?
Wie kann ich den Datensatz mit LabVIEW 'aus JASON zurückkonvertieren' zerlegen?

Danke für eure Hilfe.
Wolfgang
Hallo seni,

laut https://jsonformatter.org/ ist dein JSON-Beispiel fehlerhaft.

Kannst du mal ein korrektes Beispiel beifügen?
Auszug aus der Schnittstellenbeschreibung..

-------------------------------------------------------------------
7.2.8 get_diagnose_data
Returniert den kompletten Diagnosespeicher.

Befehl:
{ "cmd": "get_diagnose_data" }\n
Antwort:
{"success": 1,
"data": [
["0x0000000000000000",0,0],
["0x0000000000000000",0,0],
...
]
}\n

data: Array von Ereignissen. Ein Ereignis setzt sich aus folgenden drei Werten zusammen:
0: Zeitstempel (Betriebszähler in Millisekunden) als Hexadezimalzahl formatierter String.
1: Ereignis (Zahl)
2: Zusatzinformation abhängig vom Ereignis

----------------------------------------------------------------------

Die Daten kommen so von der Schnittstelle:

{"success":true,"data":[["0x0000000000000000",0,0],["0x0000000000000000",0,0],["0x0000000000000000",0,0],["0x000000000067db88",109,440],["0x000000000067dba8",208,0],["0x000000000067dba8",203,12],["0x000000000067dbac",203,5],["0x000000000067dd1c",301,0],["0x000000000067dd1c",203,1],["0x000000000067e07e",203,14],["0x000000000067e07e",203,3],["0x000000000067e196",201,0],["0x000000000067e198",203,4],["0x000000000067e198",204,1],["0x000000000067e19c",203,5],["0x0000000000682ca2",110,4114],["0x00000000006860e0",209,0],["0x00000000006860e0",202,0],["0x00000000006860e0",203,13],["0x000000000068622a",201,0],["0x0000000000686230",203,4],["0x0000000000686230",204,1],["0x0000000000686234",203,5],["0x0000000000686298",301,0],["0x0000000000686298",203,1],["0x00000000006865f8",203,14],["0x00000000006865f8",203,15]]}


Da ich die Kommunikation zum Controller nicht ändern kann, muss ich die Daten wohl mit den String-Funktionen von LabVIEW zerlegen...

Danke für Deine Hilfe
(23.01.2023 10:03 )seni austria schrieb: [ -> ]--> Inhalt von "data" ein Array mit 'String, Num, Num' --> ist nicht möglich (verschiedene Datentypen in einem Array) !!

Ein Array of Cluster sollte das Problem lösen.

Edit: Hab das mal versucht, dabei kommt der Fehler "LabVIEW: (Hex 0xFFFA4720) The array has an invalid number of dimensions." Ich kenne mich nciht mit JSON aus, aber das ist doch ein 1D Array, oder?

MfG Timo
Hallo Wolfgang,

der JSON-Parser von JKI (installierbar über den VI Package Manager) kommt mit dem folgenden Cluster bei deinen Daten klar:

[attachment=62469]

Eigentlich passt es zwar nicht, da die Daten laut JSON ein 2D-Array sind, aber wenn es klappt...

Gruß, Jens
werde das noch versuchen..

Danke
Referenz-URLs