在C語言編程中,JSON常常被用作數據傳遞和存儲的格式。在將C語言中的數據轉換成JSON格式時,使用泛型轉換可以將各種類型的數據轉換成JSON格式字符串。
//頭文件 #include//將double類型的數據轉換成JSON格式 char *double2json(double num) { //創建JSON對象 json_t *json = json_real(num); //將JSON對象轉換成JSON格式字符串 char *json_str = json_dumps(json, JSON_ENCODE_ANY); //釋放JSON對象的內存 json_decref(json); //返回JSON格式字符串 return json_str; }
上述代碼使用了jansson庫中的json_real()函數,將double類型的數據轉換成JSON的number類型。json_dumps()函數將JSON對象轉換成JSON格式字符串,并且可以通過JSON_ENCODE_ANY參數表示可以將任何類型數據編碼成JSON格式。
除了可以將各種類型的數據轉換成JSON格式之外,還可以將JSON格式字符串轉換成C語言中的數據類型。下面是一個將JSON格式字符串轉換成int類型的代碼示例:
//頭文件 #include//將JSON格式字符串轉換成int類型 int json2int(char *json_str) { //解析JSON格式字符串 json_t *json = json_loads(json_str, JSON_DECODE_ANY, NULL); //將JSON對象轉換成int類型 int num = (int)json_integer_value(json); //釋放JSON對象的內存 json_decref(json); //返回int類型數據 return num; }
上述代碼中,json_loads()函數將JSON格式字符串解析成JSON對象,使用json_integer_value()函數將JSON對象轉換成int類型的數據。這里需要注意的是,在使用jansson庫進行JSON格式字符串轉換時,需要注意內存管理問題,防止內存泄漏。
下一篇dict保存為json