如果你正在尋找一個高效、易于使用的 JSON 庫,那么 CJSON 可能是一個不錯的選擇。這是一個流行的開源庫,它可以讓你快速地將一個 JSON 對象序列化為 C 語言中的結構體,或者將一個結構體反序列化為一個 JSON 對象。CJSON 是非常快的,并且擁有一個簡單的 API,使得它很容易被其他開發者所使用。
以下是一些使用 CJSON 庫進行 JSON 編碼和解碼的簡單示例:
#include <stdio.h>
#include <cjson/cJSON.h>
int main()
{
// 創建一個 JSON 對象
cJSON *root = cJSON_CreateObject();
// 在 JSON 對象中添加一些鍵值對
cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack"));
cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(30));
// 將 JSON 對象編碼為字符串
char *encoded = cJSON_PrintUnformatted(root);
printf("Encoded string: %s\n", encoded);
// 釋放 JSON 對象和編碼字符串所占用的內存
free(encoded);
cJSON_Delete(root);
// 將一個 JSON 字符串解碼為一個 JSON 對象
char *json_str = "{\"name\":\"Amy\",\"age\":25}";
cJSON *json = cJSON_Parse(json_str);
// 獲取 JSON 對象中的鍵值對
cJSON *name = cJSON_GetObjectItem(json, "name");
cJSON *age = cJSON_GetObjectItem(json, "age");
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
// 釋放 JSON 對象所占用的內存
cJSON_Delete(json);
return 0;
}
注意,CJSON 還提供了多種方式來訪問和修改 JSON 對象中的內容。例如,你可以使用 cJSON_GetArrayItem() 和 cJSON_GetObjectItem() 函數來獲取 JSON 數組和 JSON 對象中的元素,使用 cJSON_AddItemToObject() 和 cJSON_AddItemToArray() 函數來向 JSON 對象和 JSON 數組中添加元素,以及使用 cJSON_Create*() 系列函數來創建不同類型的 JSON 元素。
總之,如果你需要在 C 語言中處理 JSON 數據,那么 CJSON 庫可能是一個可靠的選擇。它是一個高效、易于使用的開源庫,可以讓你輕松地進行 JSON 編碼和解碼。