正确使用Poco C ++ JSON解析数据 [英] Correct usage of Poco C++ JSON for parsing data

查看:3372
本文介绍了正确使用Poco C ++ JSON解析数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何机构可以指示我Poco c ++ JSON的工作原理吗? http://pocoproject.org/docs-1.5.0/Poco.JSON.html

Can any body instruct me on how the Poco c++ JSON works? http://pocoproject.org/docs-1.5.0/Poco.JSON.html

以前我使用过JsonReader: http:/ /developer.android.com/reference/android/util/JsonReader.html
和JsonToken

Previously i've used JsonReader: http://developer.android.com/reference/android/util/JsonReader.html and JsonToken

Pococ ++库似乎没有对应的对象。例如,我如何使用json解析器创建一个由标签名称处的json值组成的对象名称?

The Pococ++ library doesnt seem to have correspodning objects. How do i for example use the json parser to create a object name consisting the json value at the tag name?

最好的问候

推荐答案

编辑:从1.5.2版本开始,通过使DefaultHandler,well ...将其简化为默认值(并将其重命名为其正确的名称 - ParseHandler 。因此,如果所有你需要的是解析,不需要显式地提供处理程序

as of 1.5.2, things were simplified by making DefaultHandler, well ... default (and renaming it to its proper name - ParseHandler. So, if all you need is parsing, no need to explicitly provide the handler anymore:

// 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

这篇关于正确使用Poco C ++ JSON解析数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆