在 C 后端開發中,我們經常需要接收前端傳來的 JSON 數據。那么在 C 中如何處理 JSON 數據呢?
首先,我們需要引入一個 JSON 解析庫。這里我們以cJSON為例。將 cJSON 的頭文件和源文件拷貝到項目中,并在需要使用 JSON 的地方引用頭文件:
#include "cJSON.h"
接下來,我們需要讀取前端傳來的 JSON 數據。一般情況下,前端會將 JSON 數據作為 POST 請求的請求體通過 HTTP 協議傳輸。我們需要使用 C 語言的網絡庫(如socket)接收請求并讀取請求體中的 JSON 數據:
char buffer[1024]; int len = recv(socket_fd, buffer, sizeof(buffer), 0); // 從 socket_fd 中讀取數據 buffer[len] = '\0'; // 將 buffer 轉成字符串 cJSON *root = cJSON_Parse(buffer); // 將字符串轉成 cJSON 對象 if (root == NULL) { printf("JSON 數據解析失敗\n"); return -1; }
cJSON_Parse 函數返回的指針即為 cJSON 對象的根節點,我們可以進一步通過 cJSON 系列函數來讀取和處理 JSON 數據。
例如,我們可以使用 cJSON_GetObjectItem 函數獲取 JSON 對象中的某一項數據:
cJSON *username = cJSON_GetObjectItem(root, "username"); if (username != NULL && cJSON_IsString(username)) { printf("Username: %s\n", username->valuestring); }
代碼中,我們通過 cJSON_GetObjectItem 函數獲取 JSON 中的 username 字段,并判斷其是否為字符串類型。如果獲取成功,則打印出其值。
在處理完 JSON 數據后,別忘了釋放 cJSON 對象:
cJSON_Delete(root);
這樣,我們就可以在 C 后端中成功接收和處理前端傳來的 JSON 數據了。
上一篇python 模塊是類嗎
下一篇python 模塊名相同