C語(yǔ)言中的數(shù)組是非常常見的數(shù)據(jù)結(jié)構(gòu),我們?cè)陧?xiàng)目中經(jīng)常需要將數(shù)組轉(zhuǎn)換為Json字符串來傳遞數(shù)據(jù)。在這里,我們介紹一種利用第三方庫(kù)cJSON來完成C語(yǔ)言數(shù)組轉(zhuǎn)json字符串的方法。
#include "cJSON.h" #include#include int main() { int array[] = {1, 2, 3, 4, 5}; int length = sizeof(array)/sizeof(array[0]); cJSON *root, *arrayItem, *item; root = cJSON_CreateObject(); arrayItem = cJSON_CreateArray(); for(int i=0; i 首先,我們需要引入cJSON庫(kù),可以通過在代碼中包含“cJSON.h”文件來實(shí)現(xiàn)。因?yàn)槲覀儗⒁獎(jiǎng)?chuàng)建一個(gè)json對(duì)象,故需要定義cJSON結(jié)構(gòu)體對(duì)象root。隨后,我們創(chuàng)建一個(gè)json數(shù)組對(duì)象arrayItem,并且在for循環(huán)中依次將數(shù)組中的元素轉(zhuǎn)換為json數(shù)字對(duì)象添加到arrayItem中。最后,我們將arrayItem添加到root對(duì)象中,并使用cJSON_Print函數(shù)將root對(duì)象轉(zhuǎn)化為字符串,最后通過printf輸出即可。
需要注意的是,完成了json字符串對(duì)象的創(chuàng)建和使用后,我們應(yīng)該使用cJSON_Delete函數(shù)釋放對(duì)象所占用的內(nèi)存,并用free函數(shù)釋放jsonString所指向的內(nèi)存空間,以免造成內(nèi)存泄漏。