JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,以易于人們閱讀和編寫的文本格式為基礎(chǔ),常用于客戶端和服務(wù)器之間的數(shù)據(jù)傳輸。在C語言中,解析JSON字符串的libjson-c庫是一個(gè)非常強(qiáng)大和流行的選擇。
/* 使用libjson-c解析JSON字符串 */ #include#include int main() { char* json_string = "{\"name\": \"小明\", \"age\": 18}"; json_object* jobj = json_tokener_parse(json_string); json_object* name = NULL; json_object* age = NULL; /* 從JSON對(duì)象中獲取數(shù)據(jù) */ json_object_object_get_ex(jobj, "name", &name); json_object_object_get_ex(jobj, "age", &age); /* 輸出JSON對(duì)象的值 */ printf("Name: %s\n", json_object_get_string(name)); printf("Age: %d\n", json_object_get_int(age)); json_object_put(jobj); //釋放內(nèi)存 return 0; }
代碼中首先聲明了需要解析的JSON字符串,然后使用json_tokener_parse()函數(shù)將其解析為一個(gè)JSON對(duì)象。可以使用json_object_object_get_ex()函數(shù)獲取JSON對(duì)象中的鍵值對(duì),然后使用json_object_get_string()和json_object_get_int()函數(shù)分別取得name和age的值并輸出。
在使用完畢后,應(yīng)該調(diào)用json_object_put()釋放JSON對(duì)象占用的內(nèi)存。