在C語言中,要接收JSON格式的數據,需要使用第三方庫來幫助解析和處理JSON數據。其中,較為常用的庫有cJSON、Jansson等。
#include <cJSON.h> int main() { /* 假設有以下的json字符串 */ char *jsonstr = "{\"name\":\"Tom\",\"age\":20,\"email\":\"tom@example.com\"}"; /* 解析json字符串 */ cJSON* root = cJSON_Parse(jsonstr); /* 獲取json數據 */ char* name = cJSON_GetObjectItem(root, "name")->valuestring; int age = cJSON_GetObjectItem(root, "age")->valueint; char* email = cJSON_GetObjectItem(root, "email")->valuestring; /* 打印輸出獲取到的json數據 */ printf("Name: %s\n", name); printf("Age: %d\n", age); printf("Email: %s\n", email); /* 釋放json對象內存 */ cJSON_Delete(root); return 0; }
在上述示例代碼中,首先使用cJSON_Parse函數將json字符串解析成cJSON對象,然后使用cJSON_GetObjectItem函數獲取對應的JSON數據,最后打印輸出獲取到的數據。
需要注意的是,如果json字符串格式錯誤或者解析失敗,cJSON_Parse函數將會返回NULL指針。此時,需要通過cJSON_GetErrorPtr函數獲取解析錯誤的詳細信息。