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