如何使用json-c提取json对象键,值对的值

时间:2015-04-07 03:15:33

标签: c json

我正在尝试使用此函数,因为我能够找到的唯一示例是此函数的弃用版本,它有两个参数。 较新的函数有三个,但是当我尝试运行编译时,我得到错误:取消引用指向不完整类型的指针 不推荐使用的函数:*jobj = json_object_object_get(jobj,key) 新功能:*jobj = json_object_object_get_ex(jobj,key,value)

我刚试过以下内容: json_object_get_string(json_object_object_get(new_obj,“foo”))

但是我收到了不推荐使用的错误消息。如果我使用了新功能,我需要知道'价值'。但这就是重点,我只知道关键,我想提取价值。任何帮助将不胜感激,因为我无法找到除上述

以外的任何示例

1 个答案:

答案 0 :(得分:4)

我不确定您是否仍然需要此功能,但文档会与您获得的错误相符。不推荐json_object_object_get()函数支持json_object_object_get_ex()

仔细查看函数参数:

json_bool json_object_object_get_ex (struct json_object *obj, const char *key,
struct json_object **value)

value参数用于输出,而不是输入。您提供json_object*的地址(或指针),该函数用返回值填充它。例如:

json_object* f(json_object* rootObj, const char* key)
{
    json_object* returnObj;
    if (json_object_object_get_ex(rootObj, key, &returnObj)
    {
        return returnObj;
    }
    return NULL;
}

来源:json-c API Documentation