JSON數據是一種輕量級的數據交換格式。它可以用來存儲和傳輸數據,常用于客戶端和服務器之間的數據交換。JSON數據由鍵值對組成,使用逗號分隔,用大括號{}表示對象,用中括號[]表示數組。
JSON數據與C語言的關系密切,因為許多C語言程序需要解析JSON數據以便進行數據處理。在C語言中,可以使用第三方庫 cJSON 來完成 JSON 數據的解析和生成。
#include <stdio.h> #include "cJSON.h" int main() { // 生成 JSON 對象 cJSON *root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "name", cJSON_CreateString("Alice")); cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(25)); cJSON *hobbies = cJSON_CreateArray(); cJSON_AddItemToArray(hobbies, cJSON_CreateString("reading")); cJSON_AddItemToArray(hobbies, cJSON_CreateString("traveling")); cJSON_AddItemToObject(root, "hobbies", hobbies); // 將 JSON 對象轉為字符串并打印 char *str = cJSON_Print(root); printf("%s\n", str); // 解析 JSON 字符串 cJSON *json = cJSON_Parse(str); printf("%s\n", cJSON_GetObjectItem(json, "name")->valuestring); printf("%d\n", cJSON_GetObjectItem(json, "age")->valueint); cJSON *hobbies_arr = cJSON_GetObjectItem(json, "hobbies"); for (int i = 0; i< cJSON_GetArraySize(hobbies_arr); i++) { printf("%s\n", cJSON_GetArrayItem(hobbies_arr, i)->valuestring); } // 釋放內存 cJSON_Delete(root); cJSON_Delete(json); }
上述代碼首先使用 cJSON_CreateObject 創建 JSON 對象,并使用 cJSON_AddItemToObject 和 cJSON_AddItemToArray 來添加鍵值對。然后將 JSON 對象轉為字符串并打印出來。接著使用 cJSON_Parse 解析 JSON 字符串,并使用 cJSON_GetObjectItem 和 cJSON_GetArrayItem 獲取 JSON 對象或數組中的元素。最后使用 cJSON_Delete 釋放內存。