ArduinoJSON:使用 Flash 字符串
arduinosoftware & codinghardware更新于 2026/1/12 8:07:17
反序列化的语法如下 −
deserializeJson(doc, json)
其中 doc 是用于存储反序列化输出的 JSON 文档,json 是包含 JSON 内容的缓冲区。
好消息是,缓冲区可以直接从程序内存 (PROGMEM) 获取。换句话说,如果您不想将庞大的 JSON 字符串存储到 RAM 中,可以使用 F() 宏将其存储到程序内存或闪存中,反序列化操作也能正常工作。
示例
例如,以下代码片段运行良好。
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc,
F("{\"name\":\"Yash\",\"designation\":\"student\"}") );
现在您可以继续从文档中提取值了。
String name = doc["name"];
同样,Flash 字符串也可用于构建 JSON(序列化)
doc["name"] = F("Yash");
这有助于节省 RAM。每个硬编码字符串默认存储在 RAM 中。如果您的应用程序包含大量此类字符串,RAM 可能会不堪重负。 Flash 字符串在这里可以提供巨大的帮助。
您还可以参考内置的 ProgmemExample 来查看更多有关如何使用 Flash 字符串的示例。

