欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 獲取json里面某個節點

方一強1年前7瀏覽0評論

C語言中,我們可以使用第三方庫來解析JSON格式數據。JSON的本質就是一種字符串格式的數據,我們需要把它轉化為C語言中的數據結構進行操作,而常用的JSON解析庫有cJSON,jansson等。

在使用cJSON庫時,我們可以通過cJSON_GetObjectItem()和cJSON_GetArrayItem()函數獲取JSON里面的某個節點,其中GetString(),GetNumber(),GetArrayItem()等函數可以獲取節點的值或者子節點。

#include "cJSON.h"
int main() {
char *json_str = "{\"name\":\"apple\",\"price\":10.5,\"inventory\":[{\"place\":\"beijing\",\"quantity\":100},{\"place\":\"shanghai\",\"quantity\":200}]}";
cJSON *json = cJSON_Parse(json_str);
// 獲取根節點name的值,返回apple
cJSON *name = cJSON_GetObjectItem(json, "name");
printf("%s\n", cJSON_GetString(name));
// 獲取根節點price的值,返回10.5
cJSON *price = cJSON_GetObjectItem(json, "price");
printf("%lf\n", cJSON_GetNumber(price));
// 獲取inventory數組的第1個元素
cJSON *inventory = cJSON_GetObjectItem(json, "inventory");
cJSON *item1 = cJSON_GetArrayItem(inventory, 0);
// 獲取item1的place值,返回beijing
cJSON *place = cJSON_GetObjectItem(item1, "place");
printf("%s\n", cJSON_GetString(place));
// 獲取item1的quantity值,返回100
cJSON *quantity = cJSON_GetObjectItem(item1, "quantity");
printf("%d\n", cJSON_GetNumber(quantity));
// 釋放內存
cJSON_Delete(json);
return 0;
}

上面的代碼可以在解析json_str后獲取其中name、price、inventory等節點的值,并輸出到屏幕上。