在C語言開發(fā)中,經(jīng)常需要處理文本數(shù)據(jù),如何解析txt中的JSON數(shù)據(jù)也是一個常見的問題。JSON是一種簡單的鍵值對結(jié)構(gòu),常用的C語言庫有Jansson和cJSON,它們可以幫助我們更方便地解析JSON數(shù)據(jù)。本文將介紹cJSON的使用方法。
#include <stdio.h> #include <cJSON.h> int main() { // 讀入JSON格式的數(shù)據(jù) char *json_str = "{\"name\":\"Tom\",\"age\":\"18\",\"hometown\":{\"province\":\"Shanghai\",\"city\":\"Shanghai\"}}"; // 將JSON格式的數(shù)據(jù)轉(zhuǎn)為cJSON格式 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); // 獲取hometown對象中province字段的值 cJSON *hometown = cJSON_GetObjectItem(root, "hometown"); cJSON *province = cJSON_GetObjectItem(hometown, "province"); printf("province: %s\n", province->valuestring); // 釋放cJSON對象 cJSON_Delete(root); return 0; }
在代碼中,我們首先讀入JSON格式的數(shù)據(jù),然后使用
需要注意的是,如果獲取的字段不存在或者類型錯誤,
使用cJSON解析JSON數(shù)據(jù),可以更方便地操作JSON格式的數(shù)據(jù)。除了上述介紹的方法,cJSON還有許多其他的用法,感興趣的讀者可以自行了解。