cjson是一個(gè)使用C語(yǔ)言編寫的輕量級(jí)JSON解析器。它可以解析JSON字符串、將JSON數(shù)據(jù)轉(zhuǎn)換為C語(yǔ)言中的數(shù)據(jù)類型以及將C語(yǔ)言中的數(shù)據(jù)類型轉(zhuǎn)換為JSON字符串。同時(shí),cjson還支持嵌套的JSON解析。
/* 示例代碼 */ #include#include "cJSON.h" int main() { char* jsonStr = "{\"name\":\"張三\",\"age\":25,\"address\":{\"city\":\"北京\",\"street\":\"朝陽(yáng)路\"}}"; cJSON* root = cJSON_Parse(jsonStr); cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); cJSON* address = cJSON_GetObjectItem(root, "address"); cJSON* city = cJSON_GetObjectItem(address, "city"); cJSON* street = cJSON_GetObjectItem(address, "street"); printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); printf("city: %s\n", city->valuestring); printf("street: %s\n", street->valuestring); cJSON_Delete(root); return 0; }
在上面的示例代碼中,我們定義了一個(gè)包含嵌套JSON的JSON字符串。首先,我們使用cJSON_Parse函數(shù)將JSON字符串解析為一個(gè)cJSON對(duì)象。然后,我們通過(guò)cJSON_GetObjectItem函數(shù)獲取JSON對(duì)象中的元素。注意,在獲取嵌套元素時(shí),我們可以使用層層嵌套的方式來(lái)獲取。
最后,我們使用cJSON_Delete函數(shù)釋放cJSON對(duì)象所占用的內(nèi)存。