在前端開發中,很常見的一個場景是通過 Ajax 技術從服務器接收數據。而在服務器端,通常會將數據封裝為 JSON 格式,并通過 HTTP 請求響應給前端。
在 C 語言的后臺開發中,如何接收并解析 JSON 數據呢?通常的實現方法是使用一些第三方的庫,例如 CJson、Jansson 等。這些庫都提供了豐富的 API,可以讓程序員輕松地解析 JSON 數據。
// 使用 CJson 進行 JSON 數據解析的示例代碼 #include "cJSON.h" void parse_json(char *json_data) { cJSON *root = cJSON_Parse(json_data); if (!root) { printf("JSON 格式錯誤\n"); return; } cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies"); printf("姓名:%s,年齡:%d,愛好:", name->valuestring, age->valueint); if (cJSON_IsArray(hobbies)) { cJSON *item = NULL; cJSON_ArrayForEach(item, hobbies) { printf("%s ", item->valuestring); } } printf("\n"); cJSON_Delete(root); }
我們可以看到,在這個示例代碼中,我們是通過 cJSON_Parse 函數將 JSON 字符串轉換成了 cJSON 對象,然后通過 cJSON_GetObjectItem 函數獲取了其中的鍵值,并通過 cJSON_IsArray、cJSON_ArrayForEach 等函數來處理了數組類型的數據。最后,使用 cJSON_Delete 函數釋放掉了動態分配的內存。
當然,除了 CJson 等第三方庫外,還有其他很多 JSON 數據處理的方案,例如使用 string.h 庫中的函數來手動解析字符串,或者使用 Linux 系統自帶的 json-c 庫來完成操作等等。選擇不同的方案,將有不同的優缺點,根據具體情況進行選擇就好了。