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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von blade (Gast)


Bewertung
-1 lesenswert
nicht 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 Moderator
von Rufus Τ. F. (rufus) (Moderator) Benutzerseite


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

Gehts ein bisschen konkreter?

von M.K. B. (mkbit)


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

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Manual der Bibliothek ?

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.