C語言中操作JSON數(shù)據(jù)是非常常見的,而獲取指定節(jié)點則又是一個非常常見的需求。本文將介紹如何在C語言的JSON中取得指定節(jié)點。
/* * 定義JSON字符串 * 例如:{"name":"張三","age":18,"gender":"男"} */ char *json_str = "{\"name\":\"張三\",\"age\":18,\"gender\":\"男\(zhòng)"}"; //解析JSON字符串 json_object *json = json_tokener_parse(json_str); //獲取指定節(jié)點,例如獲取“name”節(jié)點 json_object *name_obj = NULL; json_object_object_get_ex(json, "name", &name_obj); //獲取節(jié)點值,需要根據(jù)節(jié)點類型不同調用不同的獲取方法 const char *name = json_object_get_string(name_obj); //釋放內存 json_object_put(json);
以上代碼首先定義了一個JSON字符串,然后通過json_tokener_parse函數(shù)解析字符串得到json對象。接著調用json_object_object_get_ex方法獲取指定節(jié)點,方法中需要傳入json對象和節(jié)點名稱。如果獲取成功,則返回該節(jié)點對象的指針;如果獲取失敗,則返回NULL。最后通過json_object_get_string方法獲取節(jié)點的值,注意不同節(jié)點類型需要調用不同的方法。
需要注意的是,如果要獲取的節(jié)點是一個數(shù)組或者對象,則需要使用json_object_object_get、json_object_array_get_idx等方法來獲取其中的子節(jié)點。同時,為了避免內存泄漏,在使用完json對象后需要調用json_object_put方法進行釋放。
上一篇python+消除人聲
下一篇mysql全套視頻百度云