gpt4 book ai didi

c - 使用 cJSON 读取 key

转载 作者:行者123 更新时间:2023-11-30 16:09:08 24 4
gpt4 key购买 nike

我正在使用 cJSON 来解析包含键值的字符串。我想动态生成我的结构,为此我需要读取该字符串中的所有键。

例如我有一个如下所示的 json,我想在运行时读取所有键。我不知道 json 中会出现哪些所有键。

{
"name": "abc",
"class": "First",
"division": "A",
"age": "10"
}

如何在不知道键的情况下读取键和值?

我尝试使用指针链接到下一个子项,但这似乎没有给我正确的值。

cJSON *root = cJSON_Parse(strMyJson);
cJSON *temp = root;

std::cout << "----------" << temp->child->string << "\n";//displays key - correct
std::cout << "----------" << temp->child->valuestring << "\n"; //displays value - correct

//below starts causing problem
temp = temp->child->next;

while (temp != NULL)
{
std::cout << "----------" << temp->string << "\n";
std::cout << "----------" << temp->valuestring << "\n";
temp = temp->child->next;
}

感谢您的帮助!

-谢谢,

最佳答案

已解决的问题不知道为什么,但我需要单独处理 root case。

下面的代码有效!

        cJSON *root = cJSON_Parse(strMyJson);
if(NULL == root)
{
std::cout << __func__ << " invalid JSON\n";
return false;
}

cJSON *temp = root;

temp = temp->child->next;

std::cout << "value: " << temp->valuestring << "\t";
std::cout << "key : " << temp->string << "\n";

temp = temp->next;

while (temp != NULL)
{

std::cout << "----------" << temp->string << "\n";
std::cout << "----------" << temp->valuestring << "\n";

temp = temp->next;
}

-谢谢,

关于c - 使用 cJSON 读取 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59207045/

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