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

c json取出其中某些元素的值

C語言中操作JSON數(shù)據(jù)是一件非常常見的事情,而在操作JSON數(shù)據(jù)的過程中,有很多時(shí)候我們只需要取出其中的某些元素的值。那么如何使用C語言從JSON數(shù)據(jù)中取出其中的某些元素的值呢?下面我們來看看具體的操作方法。

#include#include#include#include "cJSON.h"
int main()
{
char *json_str = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }";
cJSON *root = NULL, *name = NULL, *age = NULL, *city = NULL;
root = cJSON_Parse(json_str);
if (root == NULL)
{
printf("JSON格式錯(cuò)誤!\n");
exit(EXIT_FAILURE);
}
name = cJSON_GetObjectItemCaseSensitive(root, "name");
age = cJSON_GetObjectItemCaseSensitive(root, "age");
city = cJSON_GetObjectItemCaseSensitive(root, "city");
if (cJSON_IsString(name) && (name->valuestring != NULL))
{
printf("姓名:%s\n", name->valuestring);
}
if (cJSON_IsNumber(age))
{
printf("年齡:%d\n", age->valueint);
}
if (cJSON_IsString(city) && (city->valuestring != NULL))
{
printf("城市:%s\n", city->valuestring);
}
cJSON_Delete(root);
return 0;
}

以上代碼的邏輯比較簡單,首先我們使用 cJSON_Parse() 函數(shù)將 JSON 字符串解析成 cJSON 對(duì)象,然后通過 cJSON_GetObjectItemCaseSensitive() 函數(shù)獲取相應(yīng)的值,最后通過 cJSON_IsString() 和 cJSON_IsNumber() 判斷值的類型。如果是字符串類型,則使用 cJSON_Print() 函數(shù)從 cJSON 對(duì)象中取出該字符串并打印出來,如果是數(shù)字類型,則使用 cJSON_Print() 函數(shù)從 cJSON 對(duì)象中取出該數(shù)字并打印出來。

總結(jié):使用 C 語言從 JSON 數(shù)據(jù)中取出其中的某些元素的值,可以使用 cJSON 庫實(shí)現(xiàn)。 cJSON 庫是一個(gè)輕量級(jí)、可移植的 JSON 解析、生成庫,可以輕松地將 JSON 數(shù)據(jù)解析成 C 結(jié)構(gòu)體,并提供相應(yīng)的函數(shù)方便地訪問其中的元素。