在C語言中,我們可以使用第三方庫將JSON數據轉換成可讀的格式,這個庫就是JSON-C。JSON-C可以輕松地將JSON數據轉換成C結構,從而方便地操作JSON數據。
首先,我們需要安裝JSON-C庫,安裝方法可以參考官方文檔。安裝完成后,我們可以開始使用JSON-C庫進行JSON數據的轉換了。
/* 引入JSON-C的頭文件 */ #includevoid convertJsonToCStruct(char *jsonString) { /*將JSON字符串解析成JSON對象*/ json_object *jsonObject = json_tokener_parse(jsonString); /*獲取JSON對象中的每個鍵值對*/ json_object_object_foreach(jsonObject, key, val){ printf("Key:%s\n", key); /*判斷值得類型*/ if(val == NULL){ printf("Value: null\n"); }else if(json_object_is_type(val, json_type_string)){ printf("%s = %s\n", key, json_object_get_string(val)); }else if(json_object_is_type(val, json_type_int)){ printf("%s = %d\n", key, json_object_get_int(val)); }else if(json_object_is_type(val, json_type_boolean)){ printf("%s = %s\n", key, json_object_get_boolean(val) ? "true" : "false"); }else if(json_object_is_type(val, json_type_array)){ /*處理JSON數組*/ json_object *jsonArray; int arrayLength; int i; jsonArray = json_object_array_get_idx(val, i); arrayLength = json_object_array_length(val); for(i = 0; i< arrayLength; i++){ printf("%s[%d] = %s\n", key, i, json_object_get_string(json_object_array_get_idx(val, i))); } }else if(json_object_is_type(val, json_type_object)){ /*處理JSON對象*/ json_object_object_foreach(val, innerKey, innerVal){ printf("%s ->%s = %s\n", key, innerKey, json_object_get_string(innerVal)); } } } /*釋放JSON對象*/ json_object_put(jsonObject); }
在上面的代碼中,使用了json_object_object_foreach方法來遍歷JSON對象中的每個鍵值對。如果鍵對應的值為null,則輸出"value: null";如果為字符串類型,則輸出鍵值對對應的字符串;如果為整型,則輸出鍵值對對應的整數;如果為布爾型,則輸出鍵值對對應的true或false;如果為數組,則遞歸遍歷數組,輸出每個元素;如果為對象,則遞歸遍歷對象,并輸出每個鍵值對。
通過以上C語言中使用JSON-C庫進行JSON數據的轉換,我們現在可以方便地從JSON數據中獲取所需的鍵值對,并對它們進行操作。
上一篇python 爬國外網站
下一篇go和vue交互