在使用C語言編程時,經常需要使用API返回JSON數據進行后續處理。而解析JSON數據,則需要使用JSON解析庫,如cJSON。
#include <stdio.h> #include <cJSON.h> int main() { char* json_str = "{ \"name\": \"John Smith\", \"age\": 28 }"; // 從字符串中解析JSON數據 cJSON* root = cJSON_Parse(json_str); // 獲取"name"字段的值 cJSON* name = cJSON_GetObjectItem(root, "name"); printf("Name: %s\n", name->valuestring); // 獲取"age"字段的值 cJSON* age = cJSON_GetObjectItem(root, "age"); printf("Age: %d\n", age->valueint); // 釋放內存 cJSON_Delete(root); return 0; }
如上面的示例所示,我們首先聲明一個JSON字符串,然后使用cJSON_Parse解析該字符串,得到一個JSON對象root。接著,我們使用cJSON_GetObjectItem獲取"name"字段和"age"字段的值,并打印出來。最后,我們使用cJSON_Delete釋放內存。
除了從字符串中解析JSON數據外,我們還可以從文件中解析JSON數據,如下所示:
cJSON* root = cJSON_ParseFromFile("data.json", "r");
其中,"data.json"是包含JSON數據的文件名。
總之,在C語言中解析JSON數據并不復雜,只需要使用JSON解析庫即可輕松實現。