22

Poco C ++ JSONがどのように機能するかを誰かに教えてもらえますか?

以前は、 JsonReaderとJsonTokenを使用していました。PocoC++ライブラリには対応するオブジェクトがないようです。

たとえば、jsonパーサーを使用して、タグ名のJSON値で構成されるオブジェクト名を作成するにはどうすればよいですか?

4

2 に答える 2

33

編集: 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);

詳細については、この回答を参照してください。

于 2013-03-14T21:25:49.490 に答える