Пользователи Arduino, помогите, пожалуйста! Привет, ребята! Например, у меня есть документ JSON для разбора ArduinoJson:
{
"id": [
1,
7,
32,
9656
]
}
Мне нужно сохранить значения идентификатора, чтобы они выглядели так:
идентификаторы [0] = 1,
идентификаторы [1] = 7,
ids[2] = 32 и так далее.
Сейчас делаю так (знаю, что это в корне неправильно, но не знаю как иначе):
шаг запроса по ссылке пропущу
char json[500];
getids.toCharArray(json, 500);
Serial.println(json);
StaticJsonDocument <500> doc;
DeserializationError err = deserializeJson(doc, json);
Затем я просто пытаюсь приравнять значения к массиву:
int ids[16] = {doc["id"]};
Но когда я вывожу ids[0], я получаю 0
Также проблема в том, что я заранее не знаю, сколько элементов будет в этом массиве — этот файл регулярно редактируется в телефонном приложении и мой JSON-документ может менять количество id. Сейчас их 4, но это для примера, т.к. их количество неизвестно, из-за чего приходится делать динамический массив, а не задавать самому, как я поставил [16]
Помощник ArduinoJson предлагает такой вариант:
JsonArray id = doc["id"];
int id_0 = id[0]; // 1
int id_1 = id[1]; // 7
int id_2 = id[2]; // 1337
int id_3 = id[3]; // 9656
Но это не подходит, так как опять же я заранее не знаю количество элементов
Это мой первый вопрос в Stackoverflow, поэтому извините, если я задал его неправильно.
Это может просто использовать как:
JsonArray ids = doc["id"]
и использовать его внутри таких функций, как ids[1], ids[2] и других.