温馨提示:这篇文章已超过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