在C語言中,要處理返回的json格式數據,需要使用json-c庫。這個庫提供了很多實用的函數和結構體幫助我們解析和處理json數據。以下是一些處理json數據的基本步驟:
//創建json對象 json_object *json = json_tokener_parse(response); //獲取json對象中的數據 json_object_object_get_ex(json, "key", &result); //判斷json對象的類型 if (json_object_is_type(result, json_type_string)) { const char* str = json_object_get_string(result); printf("String: %s\n", str); } else if (json_object_is_type(result, json_type_int)) { int num = json_object_get_int(result); printf("Int: %d\n", num); } else if (json_object_is_type(result, json_type_boolean)) { bool val = json_object_get_boolean(result); printf("Boolean: %d\n", val); } else if (json_object_is_type(result, json_type_array)) { //遍歷數組并獲取其中的元素 int len = json_object_array_length(result); for (int i = 0; i< len; i++) { json_object* obj = json_object_array_get_idx(result, i); if (json_object_is_type(obj, json_type_string)) { const char* elem = json_object_get_string(obj); printf("Array Element %d: %s\n", i, elem); } else { printf("Array Element %d: Unknown type\n", i); } } } else { printf("Unknown type\n"); } //釋放json對象 json_object_put(json);
在使用json-c庫處理json數據時,需要仔細處理錯誤情況,比如json對象不存在或者json對象類型不匹配等情況。同時,為了避免內存泄漏,需要及時釋放創建的json對象。
下一篇drf限制 json