gpt4 book ai didi

C++ Poco - 如何遍历 JSON 数组?

转载 作者:搜寻专家 更新时间:2023-10-31 02:05:21 26 4
gpt4 key购买 nike

我看过一些 examples如何迭代思想嵌套的 JSON 对象,例如:

 "{ \"test\" : { \"property\" : \"value\" } }"

但现在我需要遍历 JSON 数组(下面的 children array):

"{ \"name\" : \"Franky\", \"children\" : [ \"Jonas\", \"Ellen\" ] }"

我怎样才能做到这一点?

我在任何地方都看不到示例,甚至在 POCO 文档中也看不到。

我在下面有这个示例,但无法获取 child 的数组。

Poco::Dynamic::Var test = object->get("children");

Poco::JSON::Array::Ptr subObject = test.extract<Poco::JSON::Array::Ptr>();

for (it = subObject->begin(); it != subObject->end(); it++) // how to iterate here?
{
std::cout << "my children:" << it->first << "\n";
}

最佳答案

subObject 数组的方法 beginend 返回定义的 JSON::Array::ConstIterator如下

typedef std::vector<Dynamic::Var>::const_iterator ConstIterator;

这样你就可以写

for (Poco::JSON::Array::ConstIterator it= subObject->begin(); it != subObject->end(); ++it)
{
// do sth here
}

当您知道it 指向Dynamic::Var 时,您可以使用convertextract 方法获取字符串对象:

for (Poco::JSON::Array::ConstIterator it = subObject->begin(); it != subObject->end(); ++it)
{
std::cout << "my children:" << it->convert<std::string>() << "\n";
}

关于C++ Poco - 如何遍历 JSON 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52181804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com