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

c list調用json數據

錢斌斌2年前7瀏覽0評論

C語言中的鏈表(list)是一種非常重要和實用的數據結構。它可以幫助我們快速地管理數據,并且在需要時更加靈活地訪問和操作數據。JSON是一種常用的數據格式,類似于XML,但比XML更加簡潔和靈活。在這篇文章中,我們將介紹如何使用C語言的鏈表來調用和管理JSON格式的數據。

#include <stdio.h>
#include <stdlib.h>
#include <jansson.h>
#include <string.h>
typedef struct list_node{
json_t *data;
struct list_node *next;
}ListNode;
typedef struct list{
ListNode *head;
int length;
}List;
void init_list(List *list){
list->head = NULL;
list->length = 0;
}
void insert_tail(List *list, json_t *data){
ListNode *new_node = (ListNode*)malloc(sizeof(ListNode));
new_node->data = data;
new_node->next = NULL;
if(list->head == NULL){
list->head = new_node;
}else{
ListNode *p = list->head;
while(p->next != NULL){
p = p->next;
}
p->next = new_node;
}
list->length++;
}
void free_list(List *list){
ListNode *p = list->head;
while(p != NULL){
json_decref(p->data);
ListNode *q = p->next;
free(p);
p = q;
}
list->head = NULL;
list->length = 0;
}
json_t* get_element(List *list, int index){
if(index >= list->length || index< 0){
return NULL;
}
int i;
ListNode *p = list->head;
for(i = 0; i< index; i++){
p = p->next;
}
return p->data;
}
int main(){
const char *json_str = "{\"name\":\"Tom\",\"age\":18,\"sex\":\"male\"}";
json_t *root = json_loads(json_str, 0, NULL);
if(!json_is_object(root)){
printf("Invalid JSON object.\n");
return -1;
}
List *list = (List*)malloc(sizeof(List));
init_list(list);
insert_tail(list, json_object_get(root, "name"));
insert_tail(list, json_object_get(root, "age"));
insert_tail(list, json_object_get(root, "sex"));
int i;
for(i = 0; i< list->length; i++){
json_t *element = get_element(list, i);
const char *key = json_string_value(json_object_iter_key(json_object_find(root, json_string_value(element))));
const char *value = json_string_value(element);
printf("%s: %s\n", key, value);
}
free_list(list);
json_decref(root);
return 0;
}

上面的代碼演示了如何使用鏈表來管理JSON數據。首先,我們使用json_loads函數從一個JSON字符串中加載數據,并將其存儲在一個json_t指針中。然后,我們初始化一個鏈表,并將JSON數據中的所有屬性插入到鏈表尾部。最后,我們可以使用get_element函數從鏈表中獲取元素,并使用json_string_value函數將JSON數據轉換為C字符串。