我正在尝试使用ArduinoJson解析Google的quickdraw数据集,其中包含具有多个对象的.ndjson文件。我想出了如何使用以下简单代码来检索文件中的第一个对象:
DeserializationError deserialization_error = ArduinoJson::deserializeJson(doc, as_cstr);
if (deserialization_error) {
printf("deserializeJson() failed: %s\n", deserialization_error.c_str());
}
但是,这只会解析ndjson文件中的第一个对象。
根据website,我觉得应该自动发生其他事情:
NDJSON, JSON Lines
When parsing a JSON document from an input stream, ArduinoJson stops reading as soon as the document ends (e.g., at the closing brace).
This feature allows to read JSON documents one after the other; for example, it allows to read line-delimited formats like NDJSON or JSON Lines.
{"event":"add_to_cart"}
{"event":"purchase"}
有什么方法可以获取解析对象的字节长度,以便我可以继续使用cstring解析连续对象吗?我确实打印了cstring,它确实包含整个ndjson文件。
最佳答案
我找到了。
只需拨打多次:
DeserializationError error = deserializeJson(doc, sceneFile);
要么: deserializeJson(docline1, sceneFile);
deserializeJson(docline2, sceneFile);
deserializeJson(docline3, sceneFile);