C语言中,可以使用第三方库来处理 JSON 数据。以下是一些常用的第三方库:

  1. 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;
}
  1. 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 数据,你可以根据自己的需求选择合适的库来使用

C语言 json

原文地址: https://www.cveoy.top/t/topic/ic89 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录