C JSON 格式是一種輕量級的數據交換格式,它使用易于人類閱讀和編寫的文本形式,可以被幾乎所有編程語言解析和生成。
C JSON 格式包括兩種結構:對象和數組。對象是一個無序鍵值對的集合,鍵是一個字符串,值可以是字符串、數值、布爾值、null、數組或另一個對象。數組是一個有序值的集合,每個值可以是字符串、數值、布爾值、null、數組或另一個對象。
{ "name": "張三", "age": 24, "isStudent": true, "interest": ["足球", "旅游"], "address": { "city": "北京", "district": "海淀區" } }
在 C 語言中,可以使用 cJSON 庫來解析和生成 C JSON 格式的數據。該庫提供了簡單而強大的 API,可以輕松地將 C JSON 對象轉換為字符串,或者將字符串轉換為 C JSON 對象。
#include <stdio.h> #include <cJSON.h> int main() { // 創建一個 cJSON 對象 cJSON *root = cJSON_CreateObject(); // 向對象中添加鍵值對 cJSON_AddStringToObject(root, "name", "張三"); cJSON_AddNumberToObject(root, "age", 24); cJSON_AddBoolToObject(root, "isStudent", 1); // 創建一個數組,并向其中添加元素 cJSON *interest = cJSON_CreateArray(); cJSON_AddItemToArray(interest, cJSON_CreateString("足球")); cJSON_AddItemToArray(interest, cJSON_CreateString("旅游")); cJSON_AddItemToObject(root, "interest", interest); // 創建一個嵌套的對象 cJSON *address = cJSON_CreateObject(); cJSON_AddStringToObject(address, "city", "北京"); cJSON_AddStringToObject(address, "district", "海淀區"); cJSON_AddItemToObject(root, "address", address); // 將 cJSON 對象轉換為字符串 char *json_str = cJSON_Print(root); printf("%s", json_str); cJSON_Delete(root); free(json_str); return 0; }
上述代碼演示了如何使用 cJSON 庫創建 C JSON 對象并轉換為字符串。在解析 C JSON 字符串時,可以使用 cJSON_Parse 函數將其轉換為 cJSON 對象,然后通過 cJSON_GetObjectItem 函數獲取其中的鍵值對。
char *json_str = "{\"name\":\"張三\",\"age\":24,\"isStudent\":true,\"interest\":[\"足球\",\"旅游\"],\"address\":{\"city\":\"北京\",\"district\":\"海淀區\"}}"; cJSON *root = cJSON_Parse(json_str); cJSON *name = cJSON_GetObjectItem(root, "name"); printf("%s", name->valuestring); cJSON_Delete(root);
總之,C JSON 格式作為一種輕量級的數據交換格式,具有易于人類閱讀和編寫的文本形式,可以使多種編程語言之間進行數據交換變得更加便捷。