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

c list集合轉json

吉茹定2年前7瀏覽0評論

C語言中,使用list集合儲存數據時,有時需要將其轉換成可以方便傳遞的json格式,這時可以使用cJSON這個第三方庫來實現。

//將list集合轉換成json格式
cJSON* list_to_json(List list){
cJSON* root = cJSON_CreateArray();
ListNode* p = list.head;
while(p != NULL){
cJSON_AddItemToArray(root, cJSON_CreateString(p->data));
p = p->next;
}
return root;
}

代碼中使用了cJSON_CreateArray()函數創(chuàng)建一個數組類型的json對象,然后遍歷list集合,將每個節(jié)點的data數據轉換成json字符串再添加到數組中。最后將整個數組返回。

轉換json后,我們也可以使用其他cJSON提供的函數將其進行解析和操作。

//解析json字符串,并將其轉換成list集合
List json_to_list(char* json_str){
List list;
ListNode* tail = NULL;
cJSON* root = cJSON_Parse(json_str);
if(root == NULL){
return list;
}
cJSON* item = root->child;
while(item != NULL){
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->data = strdup(item->valuestring);
node->next = NULL;
if(tail == NULL){
list.head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
item = item->next;
}
cJSON_Delete(root);
return list;
}

代碼中使用了cJSON_Parse()函數將json字符串解析成cJSON對象,然后遍歷其子對象,取出每個值,并添加到list集合中。

通過以上方法,我們可以很方便地將c語言中的list集合轉換成json格式,方便數據的傳遞和解析。