c 获取json的key(获取json串中指定key的值:代码示例)

jsonjiaocheng

温馨提示:这篇文章已超过230天没有更新,请注意相关的内容是否还可用!

在C语言中,要获取JSON串中指定key的值,可以通过解析JSON串并遍历其结构来实现。我们需要使用一个JSON解析库,例如 cJSON,来解析JSON串。然后,我们可以使用该库提供的函数来获取指定key的值。

我们需要将JSON串解析为一个cJSON对象。假设我们有以下JSON串:

char *json_str = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }";

我们可以使用cJSON_Parse函数将其解析为一个cJSON对象:

cJSON *json = cJSON_Parse(json_str);

接下来,我们可以使用cJSON_GetObjectItem函数来获取指定key的值。假设我们要获取名为"name"的key的值,可以使用以下代码:

cJSON *name_item = cJSON_GetObjectItem(json, "name");

该函数会返回一个cJSON对象,代表指定key的值。如果指定key不存在,返回值将为NULL。

我们可以使用cJSON_GetStringValue函数来获取字符串类型的值。假设我们要获取"name"的值,可以使用以下代码:

const char *name_value = cJSON_GetStringValue(name_item);

该函数会返回一个指向字符串的指针,表示指定key的值。如果指定key的值不是字符串类型,返回值将为NULL。

要获取JSON串中指定key的值,我们可以使用cJSON库的函数来解析JSON串,并使用cJSON_GetObjectItem和cJSON_GetStringValue函数来获取指定key的值。

以下是完整的示例代码:

#include <stdio.h>

#include "cJSON.h"

int main() {

char *json_str = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }";

cJSON *json = cJSON_Parse(json_str);

cJSON *name_item = cJSON_GetObjectItem(json, "name");

const char *name_value = cJSON_GetStringValue(name_item);

printf("Name: %s\n", name_value);

cJSON_Delete(json);

return 0;

}

运行以上代码将输出:

Name: John

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码