ArduinoJSON:处理闪存字符串


反序列化的语法如下 −

deserializeJson(doc, json)

其中 doc 是您将存储反序列化输出的 JSON 文档,而 json 是包含 JSON 内容的缓冲区。

好消息是,缓冲区可以直接从 PROGMEM 中获取。换句话说,如果您不想将一个较大的 JSON 字符串存储到 RAM 中,可以使用 F() 宏将其存储到程序内存或闪存中,并且反序列化可以正常工作。

示例

例如,以下代码段可以正常工作。

StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc,
F("{\"name\":\"Yash\",\"designation\":\"student\"}") );

现在,您可以继续从 doc 中提取值。

String name = doc["name"];

同样,闪存字符串可以用于构建 JSON(序列化)

doc["name"] = F("Yash");

这有助于节省 RAM。默认情况下,每个硬编码的字符串都存储在 RAM 中。如果您的应用程序包含大量这样的字符串,那么 RAM 可能会不堪重负。在这里,闪存字符串可以提供很大的帮助。

您还可以参考内置的 ProgmemExample 来查看更多有关如何处理闪存字符串的示例。

更新于:2021 年 7 月 26 日

163 次浏览

开启您的 职业生涯

完成课程获得认证

开始
广告