Forum: PC-Programmierung Parse JSON string with cJSON in embedded C


von blade (Gast)


Lesenswert?

Hallo Zusammen,

ich würde gerne eine JSON Datei von einer Smartphone App zu einem 
embedded System (embedded C) schicken und dort die Daten auslesen, 
verändern und wieder zurückschicken.

Die Smartphone Seite macht keinerlei Probleme. Hier kann ich ohne großen 
Aufwand die JSON Datei Parsen verändern und über Bluetooth Low Energy an 
mein embedded Device schicken.


Die Übertragung über Bluetooth Low Energy an mein Device stellt auch 
noch kein Problem dar. Die ankommenden Daten fange ich erst mal in einem 
einfachen String auf, sodass dies meine Ausgangssituation darstellt:
1
char* json_string = "[{\"KEY1\" : \"VALUE1\",\"KEY2\" : \"VALUE2\",\"KEY3\" : \"VALUE3\",\"KEY4\" : \"VALUE4\"}]";


Ich habe jetzt schon min. 5 verschiedene JSON Parser für C ausprobiert, 
aber irgendwie bekomme ich sie alle nicht zum laufen. Am besten hat mir 
noch der cJSON Parser gefallen. [[https://github.com/DaveGamble/cJSON]]

Könnte mir jemand (ruhig auch mit einer Library) ein Beispiel geben, wie 
ich den String in eine Struktur Parsen und diese Struktur dann nach der 
Veränderung zurück in ein Array wandeln kann?

Das wäre echt super nett!

: Verschoben durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

blade schrieb:
> aber irgendwie bekomme ich sie alle nicht zum laufen

Gehts ein bisschen konkreter?

von M.K. B. (mkbit)


Lesenswert?

Zeig doch mal, was du mit cJSON bisher probiert hast und was dabei nicht 
funktioniert.

von Jim M. (turboj)


Lesenswert?

blade schrieb:
> Hier kann ich ohne großen
> Aufwand die JSON Datei Parsen verändern und über Bluetooth Low Energy an
> mein embedded Device schicken.

Warum als JSON und nicht in einem anderen binären Format? BTLE hat 
relativ wenig Bytes/Paket, Textformate sind da eher bäh.

blade schrieb:
> Könnte mir jemand (ruhig auch mit einer Library) ein Beispiel geben, wie
> ich den String in eine Struktur Parsen und diese Struktur dann nach der
> Veränderung zurück in ein Array wandeln kann?

Mach das besser auf dem Telefon...

von Marco H. (damarco)


Lesenswert?

Manual der Bibliothek ?

https://zserge.com/jsmn.html z.Bsp sehr schlank und ohne malloc...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.