在C后臺開發中,處理Json數據是一項經常需要用到的操作。為了方便管理和維護Json數據,我們通常需要將Json數據轉換成對象。本文會介紹如何在C中實現Json轉換對象的操作。
// 將字符串解析成Json對象 json_object *json_str_to_obj(char *json_str) { json_tokener *tokenizer = json_tokener_new(); json_object *json_obj = json_tokener_parse_ex(tokenizer, json_str, strlen(json_str)); json_tokener_free(tokenizer); return json_obj; } // 將Json對象轉換成字符串 char *json_obj_to_str(json_object *json_obj) { return json_object_to_json_string_ext(json_obj, JSON_C_TO_STRING_PLAIN); } // 將Json對象轉換成結構體 struct json_struct { int id; char *name; }; void json_obj_to_struct(json_object *json_obj, struct json_struct *json_struct) { json_object_object_foreach(json_obj, key, val) { if(strcmp(key, "id") == 0) { json_struct->id = json_object_get_int(val); } else if(strcmp(key, "name") == 0) { json_struct->name = strdup(json_object_get_string(val)); } } } // 將結構體轉換成Json對象 json_object *json_struct_to_obj(struct json_struct *json_struct) { json_object *json_obj = json_object_new_object(); json_object_object_add(json_obj, "id", json_object_new_int(json_struct->id)); json_object_object_add(json_obj, "name", json_object_new_string(json_struct->name)); return json_obj; }
上述代碼中的json_tokener、json_object_to_json_string_ext和json_object_object_foreach這些函數是C語言中處理Json數據的必要函數。通過調用這些函數,我們可以方便地將Json數據轉換成對象,或者將對象轉換成Json數據。在實際開發中,我們可以根據自己的需求和業務場景,選擇合適的方式來處理Json數據。希望本文對您有所幫助。