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

c 獲取json中的指定值

傅智翔1年前9瀏覽0評論

在C語言中,我們可以使用第三方庫來處理JSON數據。常用的庫有cJSON和jansson。本文將以cJSON為例,介紹如何獲取JSON中的指定值。

首先需要安裝cJSON庫并在代碼中導入頭文件。

#include "cJSON.h"

假設我們有以下JSON數據:

{
"name": "Alice",
"age": 18,
"hobbies": ["reading", "singing", "dancing"],
"scores": {
"math": 90,
"english": 85,
"history": 92
}
}

我們可以使用cJSON_Parse函數將其解析成cJSON對象:

cJSON *root = cJSON_Parse(json_str);

其中json_str是JSON字符串。解析完成后,我們就可以使用cJSON_GetObjectItem函數來獲取指定的值。比如獲取name:

cJSON *name_item = cJSON_GetObjectItem(root, "name");
char *name = name_item->valuestring;

這里的name_item是cJSON對象,可以使用valuestring成員獲取其字符串值。

獲取age則需要用到valueint成員:

cJSON *age_item = cJSON_GetObjectItem(root, "age");
int age = age_item->valueint;

如果要獲取數組中的某個值,可以使用cJSON_GetArrayItem函數。比如獲取hobbies中的第二個值:

cJSON *hobbies_item = cJSON_GetObjectItem(root, "hobbies");
cJSON *hobby_item = cJSON_GetArrayItem(hobbies_item, 1);
char *hobby = hobby_item->valuestring;

注意數組下標從0開始。

如果JSON數據中有嵌套的對象,需要使用cJSON_GetObjectItem函數獲取子對象的指針。比如獲取scores中的math:

cJSON *scores_item = cJSON_GetObjectItem(root, "scores");
cJSON *math_item = cJSON_GetObjectItem(scores_item, "math");
int math_score = math_item->valueint;

獲取指定值的過程中要注意值的類型,cJSON對象中包含了多種類型的值,如字符串、整數、浮點數、數組、對象等。如果獲取的值類型與實際類型不符,可能會出現錯誤。

以上就是使用cJSON庫獲取JSON中指定值的方法,希望對大家有所幫助。