JSON是一種輕量級(jí)的數(shù)據(jù)交換格式。在Web應(yīng)用中,它被廣泛使用。C語(yǔ)言中也提供了解析JSON的工具庫(kù)。下面我們來(lái)介紹一下C語(yǔ)言解析JSON的方法。
首先,我們需要用到 cJSON 這個(gè)庫(kù),它是一個(gè)開源的C語(yǔ)言庫(kù),用于解析和生成JSON文檔。
#include <stdio.h> #include <cJSON.h> int main() { char *string = "{\"name\":\"apple\",\"price\":3.2}"; cJSON *root = cJSON_Parse(string); cJSON *name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", name->valuestring); cJSON *price = cJSON_GetObjectItem(root, "price"); printf("price: %.2f\n", price->valuedouble); cJSON_Delete(root); return 0; }
以上是一個(gè)簡(jiǎn)單的例子。我們首先定義了一個(gè)JSON字符串,然后通過(guò) cJSON_Parse() 函數(shù)將其解析成一個(gè) cJSON 對(duì)象。接著,我們通過(guò) cJSON_GetObjectItem() 函數(shù)獲取對(duì)象的各個(gè)屬性,并打印出來(lái)。最后,我們使用 cJSON_Delete() 函數(shù)釋放內(nèi)存,避免內(nèi)存泄漏。
需要注意的是,cJSON 庫(kù)也提供了許多其他函數(shù),例如 cJSON_CreateObject()、cJSON_CreateArray() 等,可以方便地生成JSON對(duì)象。
總之,C語(yǔ)言解析JSON需要借助 cJSON 這個(gè)庫(kù),通過(guò)簡(jiǎn)單的API調(diào)用即可完成。對(duì)于一些高級(jí)的應(yīng)用場(chǎng)景,我們還可以結(jié)合其他庫(kù),例如 libcurl,實(shí)現(xiàn)更復(fù)雜的功能。