色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c json 轉(zhuǎn)泛型集合

C JSON是C語(yǔ)言中用于處理JSON數(shù)據(jù)的一種庫(kù)。而泛型集合則是指能夠容納不同數(shù)據(jù)類(lèi)型的集合。那么如何將C JSON解析出的數(shù)據(jù)轉(zhuǎn)化成泛型集合的形式呢?

//這里使用C JSON庫(kù)中的例子做參考
#include "cJSON.h"
int main()
{
char *jsonstr = "{\"name\":\"Jack\",\"age\":18,\"hobby\":[\"reading\",\"music\"]}";
cJSON *json = cJSON_Parse(jsonstr); //解析json字符串
cJSON *name = cJSON_GetObjectItem(json, "name"); //獲取鍵為name的值
cJSON *age = cJSON_GetObjectItem(json, "age"); //獲取鍵為age的值
cJSON *hobby = cJSON_GetObjectItem(json, "hobby"); //獲取鍵為hobby的值(一個(gè)數(shù)組)
//將解析出的數(shù)據(jù)存入泛型集合中
List *list = createList();
add(list, cJSON_CreateString(name->valuestring));
add(list, cJSON_CreateNumber(age->valueint));
cJSON *hobbyArr = cJSON_GetArrayItem(hobby, 0);
for(int i=0;ivaluestring));
}
//釋放資源
cJSON_Delete(json);
clearList(list);
return 0;
}

在上面的例子中,我們通過(guò)C JSON庫(kù)中的函數(shù)cJSON_Parse將json字符串解析成一個(gè)json對(duì)象,然后使用cJSON_GetObjectItem函數(shù)依次取出里面的值。接著我們創(chuàng)建了一個(gè)泛型集合List,并使用cJSON中的函數(shù)cJSON_CreateString、cJSON_CreateNumber等創(chuàng)建相應(yīng)類(lèi)型的值,并將其添加到List中去。

最后我們需要釋放掉C JSON中解析出的json對(duì)象以及剛剛創(chuàng)建的List。這里我們通過(guò)C JSON中的函數(shù)cJSON_Delete和自己實(shí)現(xiàn)的函數(shù)clearList來(lái)釋放資源。