Du kannst entweder eine Library dazu verwenden oder den string manuell auseinander nehmen.
Je nach Komplexität.
Es gibt z.B. innerhalb der AzureIoTUtulity ein einen Json Serializer (serializer.h). Der funktioniert ganz gut, ist aber ein ziemlich großes Teil mit einigem Overhead.
Wenn ich nur ein oder zwei Variablen daraus extrahieren möchte, gehe ich manuell durch den String. So schwierig ist das eigentlich nicht.
Wie bereits geschrieben - je nach komplexität des Aufbaus. Wenn Du es manuell machen willst, würde ich empfehlen Char-Arrays anstelle von String zu benutzen, da es dafür die mächtigeren Funktionen, wie z.B. strtok zum Zerlegen gibt. Grundlegende Infos in Zeichenketten in C.
Ist es möglich die Werte aus der JSON damit auch direkt in einen Array zu schreiben, darin zwischen zu speichern und den Array dann anschließend weiterzuverwenden.
ich möchte die JSON in einem Intervall von 3min abfragen, demnach müsste auch der Array alle 3 min erneuert werden.
Wenn Du Dich mit den angegebenen Vorschlägen und Libs und den darin enthaltenen Beispielen beschäftigst, dann kannst Du das auch realisieren.
Die Beschäftigung damit ist aber Dein Part. Den können wir Dir nicht abnehmen.
tom1tom11:
Ist es möglich die Werte aus der JSON damit auch direkt in einen Array zu schreiben, darin zwischen zu speichern und den Array dann anschließend weiterzuverwenden.
Ja das geht mit der JSON Library.. hin und zurück.
z.B.:
JsonObject& json = jsonBuffer.parseObject(buf.get());
if (!json.success()) {
Serial.println("Failed to parse config file");
return false;
}
const char *string_table[20];
json["citys"].as<JsonArray>().copyTo(string_table);