使用 C 语言取 JSON 节点是一件比较常见的任务。在 C 语言中,可以使用 cJSON 这个开源库来解析和处理 JSON 数据。
首先,需要在 C 代码中引入 cJSON 库:
#include "cJSON.h"
然后,我们可以从字符串或文件中加载 JSON 数据,并解析成 cJSON 的结构体:
// 从文件中加载 JSON 数据 char* json_data = read_json_file("data.json"); cJSON* json_root = cJSON_Parse(json_data); // 从字符串中加载 JSON 数据 char* json_string = "{ \"name\": \"小明\", \"age\": 18, \"address\": { \"city\": \"北京\", \"country\": \"中国\" } }"; cJSON* json_root = cJSON_Parse(json_string);
接着,我们可以通过 cJSON 的 API 来获取 JSON 节点的值:
// 获取 JSON 节点的子节点 cJSON* json_address = cJSON_GetObjectItem(json_root, "address"); cJSON* json_city = cJSON_GetObjectItem(json_address, "city"); // 获取 JSON 节点的值 char* city_name = json_city->valuestring; printf("城市名称: %s", city_name);
当然,我们也可以使用 cJSON 的链式 API 来更简洁地获取 JSON 节点:
char* city_name = cJSON_GetObjectItem(json_root, "address") ->valueobject ->GetItem("city") ->valuestring; printf("城市名称: %s", city_name);
总之,使用 cJSON 可以很方便地在 C 语言中解析和处理 JSON 数据,使得开发者可以更便捷地与各种互联网服务的 API 接口打交道。