在C語(yǔ)言中,我們通常使用第三方庫(kù)來(lái)解析JSON,比如常用的cJSON庫(kù)。cJSON是一個(gè)輕型的JSON解析器,可以很方便地將JSON字符串轉(zhuǎn)換成C語(yǔ)言對(duì)象,并且支持將C語(yǔ)言對(duì)象轉(zhuǎn)換成JSON字符串。
#include "cJSON.h" int main() { //將JSON字符串轉(zhuǎn)換成C語(yǔ)言對(duì)象 char* json_str = "{ 'name': '小明', 'age': 18, 'hobbies': ['足球', '游泳'] }"; cJSON* root = cJSON_Parse(json_str); //從C語(yǔ)言對(duì)象中獲取JSON數(shù)據(jù) cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); cJSON* hobbies = cJSON_GetObjectItem(root, "hobbies"); //遍歷hobbies的數(shù)組 cJSON* hobby = NULL; cJSON_ArrayForEach(hobby, hobbies) { printf("愛(ài)好:%s\n", hobby->valuestring); } //將C語(yǔ)言對(duì)象轉(zhuǎn)換成JSON字符串 char* json_str2 = cJSON_Print(root); printf("JSON字符串:%s\n", json_str2); //釋放內(nèi)存 cJSON_Delete(root); free(json_str2); return 0; }
以上代碼演示了如何使用cJSON解析JSON字符串并遍歷JSON對(duì)象中的屬性和數(shù)組。注意,在使用cJSON庫(kù)時(shí)需要在編譯選項(xiàng)中加上"-lcjson"選項(xiàng)。