LabVIEWForum.de
String parsen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: String parsen (/Thread-String-parsen--25712)



String parsen - homerjay88xx - 07.04.2014 13:36

Ich würde gerne aus einem vorhandem String die für mich relevanten Daten herausfiltern, da ich leider ein absoluter Neuling bin, komme ich nicht voran.
Mein String sieht folgendermaßen aus:
Zitat:{"format":"JSON", "result":{"totalDevicesReturned":1, "devices":[{"key":"WR","name":"WR"}]},"proc":"GetDevices","version":"1.0","id":"1"}

als Ausgabe hätte ich gerne etwas übersichtliches ungefähr so:
Zitat:GetDevices
totalDevicesReturned: 1
Name: WR



RE: String formatieren - GerdW - 07.04.2014 13:51

Hallo,

Jay,

entweder suchst du dir etwas, was JSON parsen kann (schon mal im VIPM gesucht?) - oder du programmierst das eben selbst!

Zusammengehörende Klammernpaare suchen, dazwischen anhand Kommata in Einzelstrings aufteilen, Key und Value sind durch Doppelpunkt getrennt…


RE: String formatieren - homerjay88xx - 07.04.2014 14:00

also ich habe es schon mit folgendem toolkit probiert:
https://decibel.ni.com/content/groups/interactive-internet-interface-json-toolkit-for-labview

allerdings kommt es dabei immer zu fehlern sobald eine eckige klammer im string ist......selber programmieren traue ich mir noch nicht zu, da ich vorige woche zum ersten mal mit LabView gearbeitet habe.


RE: String parsen - GerdW - 07.04.2014 14:04

Hallo Jay,

ich selbst habe noch nicht mit JSON im Allgemeinen und mit diesem Toolkit im Besonderen gearbeitet, kann also nicht sagen, warum es anscheinend deine eckigen Klammern nicht mag.

Wenn der zu parsende String wie oben gezeigt "übersichtlich" bleibt, würde ich es wohl mit dem oben genannten Ansatz selbst programmieren.
Ist doch eine schöne Übung… Big Grin


RE: String parsen - jg - 07.04.2014 14:08

Offtopic2
Ist deine Tastatur kaputt? Der SMS-alles-klein-schreib-Stil ist hier im LVF nicht gerne gesehen (vgl. LVF-Regeln).

Danke, Jens

EDIT: in lv13_img geht es bei Anlage des korrekten Datenformats direkt:
[attachment=49249]


RE: String parsen - homerjay88xx - 07.04.2014 14:15

Leider nutze ich LV 2012 und die Funktion ist nicht vorhanden....
Ich werde mich mal nach weitern Toolkits umschauen, da ich später aus einem großen Datensatz die passenden Informationen ziehen will.


RE: String parsen - jg - 07.04.2014 17:34

Hier ist noch eine json-Implementation.

Gruß, Jens


RE: String parsen - ITScotty - 15.07.2016 17:27

(07.04.2014 14:08 )jg schrieb:  Offtopic2
Ist deine Tastatur kaputt? Der SMS-alles-klein-schreib-Stil ist hier im LVF nicht gerne gesehen (vgl. LVF-Regeln).

Danke, Jens

EDIT: in lv13_img geht es bei Anlage des korrekten Datenformats direkt:

Hallo,

wie erstellt man eigentlich die passende zusammengesetzte Cluster-Konstante aus dem gegebenen JSON-Stringbeispiel?

Wie sieht die passende Cluster-Konstante aus für folgenden JSON-String?
{"link":"URL1","value":[{"date":"2012","result":"10"},{"date":"2013","result":"15"}]}

Viele Grüße
ITScotty


RE: String parsen - IchSelbst - 16.07.2016 14:07

(15.07.2016 17:27 )ITScotty schrieb:  wie erstellt man eigentlich die passende zusammengesetzte Cluster-Konstante aus dem gegebenen JSON-Stringbeispiel?
Indem man von Links nach Rechts liest und macht was da steht? Huh

{ => Es handelt sich um einen Cluster (also: (leeren) Cluster erzeugen)
"link" => Der Cluster hat ein Element mit dem Name link.
: => Es folgen Typ und Wert des Elementes mit dem Namen link
"URL1" => Das Element mit dem Namen link ist eine Variable vom Typ string und hat den Wert URL1 (also: String in Cluster einfügen)
, => Der Cluster hat weitere Elemente
"value" => Der Cluster hat ein Element mit dem Namen Value
: => Es folgen Typ und Wert des Elementes
[ => Das Element ist ein Array (also: Array in Cluster einfügen)
{ => Der Typ des Arrays ist ein Cluster
"date":"2012" => Der Cluster hat ein Element mit dem Namen date. Es folgen Typ und Wert, nämlich String = 2012
, => Der Cluster hat weitere Elemente
"result":"10" => Der Cluster hat ein Element mit dem Namen result. Es folgen Typ und Wert, nämlich String = 10
} => Der Basistyp des Array ist hiermit beendet.
, => Es folgt ein weiterer Index im Array
{"date":"2013","result":"15"} => Der Typ muss zwangsläufig identisch mit dem Vorgänger sein, da ein Array nur aus identischen Indices bestehen kann. Hier: Cluster aus zwei Strings.
] => Das Array ist hiermit beendet = Es gibt keine weiteren Indices.
} => Der Cluster ist hiermit beendet.



Oder kurz:
Cluster, bestehend aus dem String LINK und einem Array VALUE, das als Typ einen Cluster, bestehend aus den beiden Strings DATE und RESULT, hat.


RE: String parsen - ITScotty - 16.07.2016 19:11

(16.07.2016 14:07 )IchSelbst schrieb:  
(15.07.2016 17:27 )ITScotty schrieb:  wie erstellt man eigentlich die passende zusammengesetzte Cluster-Konstante aus dem gegebenen JSON-Stringbeispiel?
Indem man von Links nach Rechts liest und macht was da steht? Huh

{ => Es handelt sich um einen Cluster (also: (leeren) Cluster erzeugen)
"link" => Der Cluster hat ein Element mit dem Name link.
: => Es folgen Typ und Wert des Elementes mit dem Namen link
"URL1" => Das Element mit dem Namen link ist eine Variable vom Typ string und hat den Wert URL1 (also: String in Cluster einfügen)
, => Der Cluster hat weitere Elemente
"value" => Der Cluster hat ein Element mit dem Namen Value
: => Es folgen Typ und Wert des Elementes
[ => Das Element ist ein Array (also: Array in Cluster einfügen)
{ => Der Typ des Arrays ist ein Cluster
"date":"2012" => Der Cluster hat ein Element mit dem Namen date. Es folgen Typ und Wert, nämlich String = 2012
, => Der Cluster hat weitere Elemente
"result":"10" => Der Cluster hat ein Element mit dem Namen result. Es folgen Typ und Wert, nämlich String = 10
} => Der Basistyp des Array ist hiermit beendet.
, => Es folgt ein weiterer Index im Array
{"date":"2013","result":"15"} => Der Typ muss zwangsläufig identisch mit dem Vorgänger sein, da ein Array nur aus identischen Indices bestehen kann. Hier: Cluster aus zwei Strings.
] => Das Array ist hiermit beendet = Es gibt keine weiteren Indices.
} => Der Cluster ist hiermit beendet.


Oder kurz:
Cluster, bestehend aus dem String LINK und einem Array VALUE, das als Typ einen Cluster, bestehend aus den beiden Strings DATE und RESULT, hat.

Hallo IchSelbst,
klasse erklärt, vielen Dank!

Werde damit noch etwas rumexperimentieren...

Viele Grüße
ITScotty aus dem IT-Space