编辑:从1.5.2开始,通过使DefaultHandler,…默认(并将其重命名为其正确的名称 –
ParseHandler)来简化事情.因此,如果您需要解析,则无需再显式提供处理程序:
// objects
std::string json = "{ \"test\" : { \"property\" : \"value\" } }";
Parser parser;
Var result = parser.parse(json);
Object::Ptr object = result.extract<:ptr>();
Var test = object->get("test");
object = test.extract<:ptr>();
test = object->get("property");
std::string value = test.convert<: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<:ptr>();
Object::Ptr object = arr->getObject(0);//
assert (object->getValue("test") == 0);
object = arr->getObject(1);
arr = object->getArray("test1");
result = arr->get(0);
assert (result == 1);