1

在 ArduinoJson 库中,很容易创建 JSON 条目,如下所示。

StaticJsonDocument<512> json_doc;

String some_string = "Hello there!";
json_doc["some_string"] = some_string;

问题是检查条目是否成功创建的最佳方法是什么?如果创建的条目随时间发生变化和增长,这将允许实施错误处理并快速找到错误。

4

1 回答 1

1

简单测试一下添加的节点是否有非空值。如果在您尝试创建节点后,该节点的值为空,则该节点未被创建。

这是一个简单的草图来说明这个测试:

#include <ArduinoJson.h>

StaticJsonDocument<100> json_doc;
int nodeNumber = 0;
boolean ranOut = false;

void setup() {
  Serial.begin(9600);
}

void loop() {
  if (ranOut) return;

  String nodeName(nodeNumber++);
  String nodeContent = nodeName + " thing";
  json_doc[nodeName] = nodeContent;

  if (!json_doc[nodeName]) {
    ranOut = true;
    Serial.print("Ran out at ");
    Serial.println(nodeNumber);
  }
}

当我在我的 Arduino Uno 上运行这个 Sketch 时,它产生了:

Ran out at 6

也就是说,它成功创建了 json_doc["0"] 到 json_doc["5"] 的节点,并且在尝试创建 json_doc["6"] 时空间不足。

于 2020-01-02T06:42:17.187 回答