gpt4 book ai didi

c++ - 如何使用 jsonCpp 在 JSON 数据中查找对象或数组的数量

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

我的主要需求是如何找到顶级数据中的元素数量。

给定 json 数据:

{
[
{Key11:Value11,Key12:Value12,...Key1N:Value1N},
{Key21:Value21,Key22:Value22,...Key2N:Value2n},
{Key31:Value31,Key32:Value32,...Key3N:Value3N},
{Key41:Value41,Key42:Value42,...Key4N:Value4N},
.
.
.
KeyZ1:ValueZ1,KeyZ2:ValueZ2,...KeyZN:ValueZN}
]
}

如何查找Json数据中数组元素的个数?

此外,给定 jason 数据:

{
{Key11:Value11,Key12:Value12,...Key1N:Value1N}
}

如何找到json数据中key-value元素的个数?

最佳答案

您可以使用 Json::Value 对象的 size 成员函数,就像这样。您的数据不可用,所以我从其他地方获取了一些数据,但我认为您会看到这些共性。

您发布的 json 数据在语法上不正确。要使其有效,您必须命名列表元素或移除外部 {}。我已经为这两种可能性提供了解决方案

#include <cstdio>
#include <cstring>
#include <iostream>

#include "json/json.h"

using namespace std;

void named()
{
string txt = "{ \
\"employees\": [{ \
\"firstName\": \"John\", \
\"lastName\": \"Doe\" \
}, { \
\"firstName\": \"Anna\", \
\"lastName\": \"Smith\" \
}, { \
\"firstName\": \"Peter\", \
\"lastName\": \"Jones\" \
}] \
}";


Json::Value root;
Json::Reader reader;

bool ok = reader.parse(txt, root, false);

if(! ok)
{
cout << "failed parse\n";
return;
}

cout << "parsed ok\n";

// Answer to question 1
cout << "The employee list is size " << root["employees"].size() << '\n';

for(const auto& jv: root["employees"])
{
// Answer to your second question
cout << "employee " << jv["firstName"] << " has " << jv.size() << " elements\n";
}
}

void unnamed()
{
string txt2 = "[{ \
\"firstName\": \"John\", \
\"lastName\": \"Doe\" \
}, { \
\"firstName\": \"Anna\", \
\"lastName\": \"Smith\" \
}, { \
\"firstName\": \"Peter\", \
\"lastName\": \"Jones\" \
}]";

Json::Value root;
Json::Reader reader;

bool ok = reader.parse(txt2, root, false);

if(! ok)
{
cout << "failed parse\n";
return;
}

cout << "parsed ok\n";

// Answer to question 1
cout << "The employee list is size " << root.size() << '\n';

for(const auto& jv: root)
{
// Answer to your second question
cout << "employee " << jv["firstName"] << " has " << jv.size() << " elements\n";
}
}

int main()
{
named();
unnamed();
}

关于c++ - 如何使用 jsonCpp 在 JSON 数据中查找对象或数组的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38863485/

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