如何将 JSON 解析值保存到 ArduinoJson 中的数组

How to save JSON parsing values to an array in ArduinoJson

Arduino用户,请帮忙!嗨,大家好!例如,我有一个 JSON 文档用于解析 ArduinoJson:

{
  "id": [
    1,
    7,
    32,
    9656
  ]
}

我需要保存 id 值,使它们看起来像:

ids[0] = 1,

ids[1] = 7,

ids[2] = 32等等。

现在我这样做了(我知道这是根本错误的,但我不知道怎么办):

我将跳过 link

请求的步骤
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

此外,问题是我事先不知道这个数组中有多少元素 - 这个文件在 phone 应用程序中定期编辑,我的 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

但这不适合,因为,同样,我事先不知道元素的数量

这是我在 Whosebug 上的第一个问题,如果我问错了,我很抱歉

它可以像这样使用:

JsonArray ids = doc["id"]

并在 ids[1]、ids[2] 和其他函数中使用它