JSON Array¶
Demonstra como extrair elementos específicos de uma resposta em array JSON usando segmentos de caminho com índices numéricos.
Fonte: examples/ArrayJSON/ArrayJSON.ino
API Utilizada¶
Endpoint: GET https://jsonplaceholder.typicode.com/users
Trecho relevante da resposta (array de objetos):
[
{
"id": 1,
"name": "Leanne Graham",
"address": { "city": "Gwenborough" }
},
{
"id": 2,
"name": "Ervin Howell",
"address": { "city": "Wisokyburgh" }
}
]
Sketch¶
#include <Arduino.h>
#include <WiFi.h>
#include "ESP32HTTPClient.h"
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
ESP32HTTPClient client("https://jsonplaceholder.typicode.com");
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConectado ao WiFi");
}
void loop() {
char firstUserName[64];
char secondUserCity[64];
Serial.println("Buscando array de usuários...");
client.get("/users")
.getBody("0.name", firstUserName, sizeof(firstUserName))
.getBody("1.address.city", secondUserCity, sizeof(secondUserCity));
if (client.getStatusCode() == 200) {
Serial.printf("Nome do primeiro usuário : %s\n", firstUserName);
Serial.printf("Cidade do segundo usuário: %s\n", secondUserCity);
} else {
Serial.printf("Erro: %d\n", client.getStatusCode());
}
delay(10000);
}
Saída Esperada no Monitor Serial¶
Conectado ao WiFi
Buscando array de usuários...
Nome do primeiro usuário : Leanne Graham
Cidade do segundo usuário: Wisokyburgh
Referência de Sintaxe de Caminho¶
| Caminho | O que ele resolve |
|---|---|
"0.name" |
Campo name do primeiro elemento (índice 0) |
"1.name" |
Campo name do segundo elemento (índice 1) |
"1.address.city" |
Campo city aninhado em address do segundo elemento |
"0" (com String*) |
O primeiro elemento inteiro como uma string JSON bruta |
Indexação baseada em zero
Os índices de array são baseados em zero, seguindo as convenções padrão da linguagem C.