Как получить доступ к имени ключа или значению подобъекта в Arduino JSON? - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь получить 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, но это не работает. Как мне это сделать? Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...