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

c 獲取json數據中的值

夏志豪1年前10瀏覽0評論

在進行后端開發時,使用JSON數據格式非常普遍。而在前端開發過程中,我們需要從獲取的JSON數據中獲取所需的值。下面介紹一種用C語言獲取JSON中值的方法。

// 定義一個示例JSON字符串
char json_str[] = "{ \"name\": \"Lily\", \"age\": 22, \"score\": [80, 90, 85] }";
// 解析JSON字符串
json_object *p_json_obj = json_tokener_parse(json_str);
// 獲取name值
json_object *p_name_obj = NULL;
if (json_object_object_get_ex(p_json_obj, "name", &p_name_obj)) {
const char *p_name = json_object_get_string(p_name_obj);
printf("name: %s\n", p_name);
}
// 獲取age值
json_object *p_age_obj = NULL;
if (json_object_object_get_ex(p_json_obj, "age", &p_age_obj)) {
int age = json_object_get_int(p_age_obj);
printf("age: %d\n", age);
}
// 獲取score數組中第二個值
json_object *p_score_obj = NULL;
if (json_object_object_get_ex(p_json_obj, "score", &p_score_obj)) {
json_object *p_second_score_obj = json_object_array_get_idx(p_score_obj, 1);
int second_score = json_object_get_int(p_second_score_obj);
printf("score[1]: %d\n", second_score);
}
// 釋放JSON對象內存
json_object_put(p_json_obj);

在上述代碼中,我們使用了Json-c庫提供的json_tokener_parse()函數對JSON字符串進行解析,得到了一個json_object類型的指針。

之后使用json_object_object_get_ex()函數獲取所需的鍵值對應的json_object指針,再通過json_object_get_xxx()系列函數獲取它們的具體值。

需要注意的是,在獲取數組類型的值時,我們還需要使用json_object_array_get_idx()函數,通過下標獲取到某個元素對應的json_object指針。

最后,我們使用json_object_put()函數釋放內存,避免內存泄漏。