c++ - 正确使用 Poco C++ JSON 解析数据

标签 c++ json poco-libraries

谁能指导我如何使用 Poco C++ JSON有效吗?

以前我用过JsonReader和 JsonToken。 Poco C++ 库似乎没有对应的对象。

例如,我如何使用 json 解析器创建一个对象名称,该对象名称包含标签名称处的 JSON 值?

最佳答案

编辑:从 1.5.2 开始,通过将 DefaultHandler 设置为默认处理程序,以及将其重命名为正确的名称 - ParseHandler 来简化事情。因此,如果您只需要解析,则无需显式提供处理程序了:

// objects
std::string json = "{ \"test\" : { \"property\" : \"value\" } }";
Parser parser;
Var result = parser.parse(json);
Object::Ptr object = result.extract<Object::Ptr>();
Var test = object->get("test");
object = test.extract<Object::Ptr>();
test = object->get("property");
std::string value = test.convert<std::string>();

// array of objects
std::string json = "[ {\"test\" : 0}, { \"test1\" : [1, 2, 3], \"test2\" : 4 } ]";
Parser parser;
Var result = parser.parse(json);
Array::Ptr arr = result.extract<Array::Ptr>();
Object::Ptr object = arr->getObject(0);//
assert (object->getValue<int>("test") == 0);
object = arr->getObject(1);
arr = object->getArray("test1");
result = arr->get(0);
assert (result == 1);

this answer了解更多详情。

关于c++ - 正确使用 Poco C++ JSON 解析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15387154/

相关文章:

c++ - 仔细检查我的知识 : Unicode

c++ - 从用户应用程序访问 ring 0 模式(以及为什么 Borland 允许这样做)

c++ - 将代码从 Visual Basic 移至 C++ 问题

json - 使用 SwiftyJSON 读取本地 JSON 文件

c# - XmlNodeConverter 只能转换以对象开头的JSON

c++ - ServerSocket 抛出 InvalidArgumentException,但文档没有说明原因。为什么?

c++ - QStackedLayout 隐式显示添加的小部件

c# - 嵌套的 json 对象不使用 Json.NET 更新/继承

android - 在 android ndk 中集成 POCO 库

html - POCO HTMLForm 如何读取名称为 invoice[items][1] 的输入表单元素