C 語言在處理 JSON 數據時,需要使用反序列化方法。該方法將 JSON 字符串轉換為 C 語言中的結構體或其他類型,使程序能夠更方便地操作和處理 JSON 數據。
測試 JSON 反序列化方法時,可以使用 cJSON 庫。cJSON 是一個輕量級的、可以方便地解析和生成 JSON 數據的庫,其 API 非常簡便易用。
#include <stdio.h> #include <cJSON.h> int main() { char jsonstr[] = "{\"name\":\"Bob\", \"age\": 25, \"is_student\": true}"; cJSON *root = cJSON_Parse(jsonstr); if (root == NULL) { printf("parse json error!\n"); return 0; } cJSON *name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", name->valuestring); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", age->valueint); cJSON *is_student = cJSON_GetObjectItem(root, "is_student"); printf("is_student: %s\n", cJSON_IsTrue(is_student) ? "true" : "false"); cJSON_Delete(root); return 0; }
上述代碼示例中,我們首先定義了一個 JSON 字符串,然后調用 cJSON_Parse() 方法對其進行解析,并將解析的結果保存在 root 指針中。如果解析失敗,則 root 指針為 NULL。
接下來,我們使用 cJSON_GetObjectItem() 方法獲取 JSON 對象中的各個字段值,并輸出到控制臺上。
最后,使用 cJSON_Delete() 方法釋放內存。如果不釋放內存,可能會發生內存泄漏。
總之,使用 cJSON 庫可以很方便地處理 JSON 數據。測試反序列化方法時,需要注意輸入 JSON 字符串的格式,以及解析結果是否為空等因素。