在C語(yǔ)言中,有時(shí)候需要將數(shù)組轉(zhuǎn)換成json字符串,以便于在網(wǎng)絡(luò)中傳輸或存儲(chǔ)。而解決這個(gè)問(wèn)題的方式,就是通過(guò)使用Json-c庫(kù)。
//引入Json-c庫(kù) #include "json-c/json.h" //數(shù)組轉(zhuǎn)換為json字符串 char* array_to_json(int array[], int length) { //新建json對(duì)象 struct json_object *json = json_object_new_array(); //循環(huán)數(shù)組,將元素依次加入到j(luò)son對(duì)象中 for(int i = 0; i< length; i++) { //將數(shù)組元素轉(zhuǎn)換成json對(duì)象 struct json_object *element = json_object_new_int(array[i]); //將json對(duì)象加入到數(shù)組中 json_object_array_add(json, element); } //將json對(duì)象轉(zhuǎn)換為字符串 const char* json_string = json_object_to_json_string(json); //釋放json對(duì)象內(nèi)存 json_object_put(json); //返回json字符串 return (char*)json_string; }
上面的代碼中,我們首先使用Json-c庫(kù)中的json_object_new_array()函數(shù),創(chuàng)建了一個(gè)新的json數(shù)組對(duì)象,然后通過(guò)使用循環(huán)和json_object_new_int()函數(shù),將數(shù)組元素轉(zhuǎn)換為json對(duì)象,最后使用json_object_to_json_string()函數(shù)將json對(duì)象轉(zhuǎn)換為json字符串,并最終返回該字符串。
在實(shí)際應(yīng)用中,我們可以將array_to_json()函數(shù)作為一個(gè)工具函數(shù),通過(guò)調(diào)用它來(lái)實(shí)現(xiàn)數(shù)組轉(zhuǎn)換為json字符串的功能。