谁能指导我如何使用 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/