ArduinoJSON:使用 Flash 字符串
反序列化的语法如下-
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字符串的更多示例。