正确使用Poco C ++ JSON解析数据 [英] Correct usage of Poco C++ JSON for parsing data
问题描述
任何机构可以指示我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屋!