C JSON解析為動態(tài)對象數(shù)組是一種常見的操作。C語言提供了標(biāo)準(zhǔn)庫json-c來實現(xiàn)JSON解析,將JSON數(shù)據(jù)轉(zhuǎn)換為C語言結(jié)構(gòu)化數(shù)據(jù)。動態(tài)對象數(shù)組是一個可變長度的數(shù)組,它允許我們在程序運行時動態(tài)地添加和刪除數(shù)組元素。
#include#include int main() { char *json_data = "{\"name\":\"Tom\", \"age\":20, \"scores\":[80, 90, 85]}"; json_object *json_obj = json_tokener_parse(json_data); json_object *name_obj = json_object_object_get(json_obj, "name"); const char* name_str = json_object_get_string(name_obj); json_object *age_obj = json_object_object_get(json_obj, "age"); int age_int = json_object_get_int(age_obj); json_object *scores_obj = json_object_object_get(json_obj, "scores"); int scores_len = json_object_array_length(scores_obj); int scores[scores_len]; for (int i = 0; i< scores_len; i++) { json_object *score_obj = json_object_array_get_idx(scores_obj, i); int score_int = json_object_get_int(score_obj); scores[i] = score_int; } json_object_put(json_obj); return 0; }
首先需要準(zhǔn)備好一個JSON字符串,然后通過json_tokener_parse將其轉(zhuǎn)換為json_object對象。接下來就可以通過json_object_object_get解析對象屬性并獲取值,使用json_object_array_length獲取動態(tài)數(shù)組長度,使用json_object_array_get_idx獲取動態(tài)數(shù)組元素。
最后,需要注意的是在使用完json_object對象后需要釋放內(nèi)存,使用json_object_put函數(shù)。