C JSON格式化輸出
在程序開發中,常常需要將數據以一定的格式輸出,以方便程序的調試和分析,其中json格式作為一種輕量級的數據交換格式,具有解析簡單,易于閱讀等優點,廣泛應用于前后端數據交互、網頁數據處理等領域。而在C語言中,可以通過使用第三方庫來實現json格式的解析和輸出。
其中,使用json-c是一種常見的選擇,這是一種基于C語言的json庫,它提供了完善的API,可滿足在C語言中對json數據的讀取、解析和輸出等需求。
下面的程序演示了如何使用json-c庫對json數據進行格式化輸出:
#include <stdio.h> #include <json-c/json.h> int main(){ struct json_object *obj = json_object_new_object(); struct json_object *arr = json_object_new_array(); struct json_object *subobj = json_object_new_object(); json_object_object_add(subobj, "name", json_object_new_string("Tom")); json_object_object_add(subobj, "age", json_object_new_int(20)); json_object_object_add(subobj, "gender", json_object_new_string("male")); json_object_array_add(arr, subobj); json_object_array_add(arr, json_object_new_int(18)); json_object_array_add(arr, json_object_new_string("Beijing")); json_object_object_add(obj, "info", arr); printf("Formatted Json String:\n%s\n", json_object_to_json_string_ext(obj, JSON_C_TO_STRING_PRETTY)); return 0; }
在這個例子中,我們首先創建一個json對象obj,并給它添加了一個名為info的數組,數組中分別包含了一個對象和兩個基本數據類型。為了方便觀察和閱讀,我們在輸出時使用了json-c庫提供的json_object_to_json_string_ext函數,將json對象以縮進和換行的格式輸出。
運行以上程序,將會輸出以下格式化的json字符串:
{ "info": [ { "name": "Tom", "age": 20, "gender": "male" }, 18, "Beijing" ] }
可以看到,格式化后的json字符串在可讀性上要優于沒有格式化的json字符串,方便我們更加清晰地了解整個數據結構。