C语言 json
C语言中,可以使用第三方库来处理 JSON 数据。以下是一些常用的第三方库:
- cJSON:一个轻量级的 JSON 解析器和生成器,提供了简单易用的 API 来解析和生成 JSON 数据。
示例代码:
#include <stdio.h>
#include "cJSON.h"
int main() {
char *json_string = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
// 解析 JSON 字符串
cJSON *json = cJSON_Parse(json_string);
if (json == NULL) {
printf("Failed to parse JSON: %s\n", cJSON_GetErrorPtr());
return 1;
}
// 获取字段的值
cJSON *name = cJSON_GetObjectItem(json, "name");
if (cJSON_IsString(name) && name->valuestring != NULL) {
printf("Name: %s\n", name->valuestring);
}
cJSON *age = cJSON_GetObjectItem(json, "age");
if (cJSON_IsNumber(age)) {
printf("Age: %d\n", age->valueint);
}
cJSON *city = cJSON_GetObjectItem(json, "city");
if (cJSON_IsString(city) && city->valuestring != NULL) {
printf("City: %s\n", city->valuestring);
}
// 释放 cJSON 对象的内存
cJSON_Delete(json);
return 0;
}
- jansson:一个功能强大的 JSON 库,提供了丰富的 API 来处理 JSON 数据。
示例代码:
#include <stdio.h>
#include <jansson.h>
int main() {
char *json_string = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
// 解析 JSON 字符串
json_error_t error;
json_t *json = json_loads(json_string, 0, &error);
if (json == NULL) {
printf("Failed to parse JSON: %s\n", error.text);
return 1;
}
// 获取字段的值
json_t *name = json_object_get(json, "name");
if (json_is_string(name)) {
printf("Name: %s\n", json_string_value(name));
}
json_t *age = json_object_get(json, "age");
if (json_is_integer(age)) {
printf("Age: %lld\n", json_integer_value(age));
}
json_t *city = json_object_get(json, "city");
if (json_is_string(city)) {
printf("City: %s\n", json_string_value(city));
}
// 释放 json_t 对象的内存
json_decref(json);
return 0;
}
这些库提供了一些方便的函数来解析和生成 JSON 数据,你可以根据自己的需求选择合适的库来使用
原文地址: https://www.cveoy.top/t/topic/ic89 著作权归作者所有。请勿转载和采集!