在Web開發中,處理JSON數據是非常常見的任務。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,具有可讀性強、易于解析、易于生成和易于傳輸的特點,已成為現代Web應用程序中的主要數據格式。在C語言中,處理JSON數據同樣也是一項必需的任務。
在C語言中,可以使用第三方庫來處理JSON數據。其中,最為常見的是cJSON,它是一款輕量級的C語言JSON編解碼器,可以很方便地對JSON數據進行組裝和解析。
#include <stdio.h> #include <cJSON.h> int main() { // 組裝JSON數據 cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "張三"); cJSON_AddNumberToObject(root, "age", 25); cJSON *hobbies = cJSON_AddArrayToObject(root, "hobbies"); cJSON_AddStringToObject(hobbies, "coding"); cJSON_AddStringToObject(hobbies, "reading"); cJSON_AddStringToObject(hobbies, "running"); char *json_data = cJSON_Print(root); printf("%s\n", json_data); // 解析JSON數據 cJSON *json = cJSON_Parse(json_data); char *name = cJSON_GetObjectItem(json, "name")->valuestring; int age = cJSON_GetObjectItem(json, "age")->valueint; cJSON *hobbies_arr = cJSON_GetObjectItem(json, "hobbies"); for (int i = 0; i< cJSON_GetArraySize(hobbies_arr); i++) { cJSON *hobby = cJSON_GetArrayItem(hobbies_arr, i); printf("hobby %d: %s\n", i+1, hobby->valuestring); } // 釋放內存 cJSON_Delete(json); free(json_data); return 0; }
上面的示例代碼展示了如何使用cJSON組裝和解析JSON數據。在組裝JSON數據時,首先創建一個cJSON對象,然后使用cJSON_AddXXXToObject系列函數向對象中添加值,最后使用cJSON_Print函數將對象轉換成JSON字符串。解析JSON數據時,首先使用cJSON_Parse函數將JSON字符串解析成cJSON對象,然后使用cJSON_GetObjectItem系列函數獲取對象中的值。