Я пытаюсь получить json данные из API через Arduino. Мне нужно получить доступ ко всем именам ключей или значениям подобъектов по l oop. Например: Json Array:
[{"id":1,"name":"dev1","state":0,"updatedAt":"2020-02-08T23:10:15+01:00"},{"id":2,"name":"dev2","state":1,"updatedAt":"2020-02-07T21:13:06+01:00"}]
Вывод:
dev1
dev2
Ниже приведен фрагмент моего кода. Я использую библиотеку ArduinoJson6
void loop(){
if (Serial.available() > 0)
{
if (client.connect(serverName, 8701)) {
Serial.println("connected");
client.println("GET /api/devices HTTP/1.1");
client.println();
}
else {
Serial.println("connection failed");
Serial.println();
}
char status[32] = {0};
client.readBytesUntil('\r', status, sizeof(status));
if (strcmp(status, "HTTP/1.1 200 OK") != 0) {
Serial.print(F("Unexpected response: "));
Serial.println(status);
return;
}
char endOfHeaders[] = "\r\n\r\n";
if (!client.find(endOfHeaders)) {
Serial.println(F("Invalid response"));
return;
}
StaticJsonDocument<500> doc;
// Parse JSON object
DeserializationError error = deserializeJson(doc, client);
if (error) {
Serial.print(F("deserializeJson() failed: "));
Serial.println(error.c_str());
return;
}
JsonObject documentRoot = doc.as<JsonObject>();
for (JsonPair keyValue : documentRoot) {
Serial.println(keyValue.key().c_str());
}
client.stop();
}
}
Я пытаюсь сделать это с помощью JsonPair, но это не работает. Как мне это сделать? Спасибо за помощь!