在開發web應用的時候,經常需要將數據格式化成json格式以方便進行前后端數據傳遞。但是,當json數據結構過于復雜時,我們很難直觀地將其展現出來。這時候,我們就需要使用c語言來格式化json結構并將其以樹形式展示。
//定義json節點的結構體 typedef struct node{ char name[64]; //節點名稱 char value[128]; //節點值 struct node *child; //子節點指針 struct node *next; //同級節點指針 }Node; //解析json字符串 Node *parseJson(char *str){ Node *root = NULL; //解析json字符串,生成json樹 //... return root; } //打印json樹 void printJsonTree(Node *root, int depth){ if(root == NULL){ return; } int i; for(i=0;iname) >0){ printf("%s: ", root->name); } if(strlen(root->value) >0){ printf("%s\n", root->value); } else{ printf("\n"); } if(root->child){ printJsonTree(root->child, depth+1); } if(root->next){ printJsonTree(root->next, depth); } } int main(){ char *jsonStr = "{\"name\":\"張三\",\"age\":20,\"address\":{\"province\":\"江蘇\",\"city\":\"南京\",\"zone\":\"鼓樓區\"}}"; Node *root = parseJson(jsonStr); printJsonTree(root, 0); return 0; }
上述代碼中,我們定義了一個json節點的結構體,并編寫了解析json字符串和打印json樹的函數。在打印樹形結構時,我們使用了遞歸函數來遍歷所有節點,并添加了縮進和分隔符等細節,保證樹形結構的可讀性。
在實際開發中,我們可以將json樹以HTML表格的形式呈現在前端頁面中,讓用戶可以更加直觀地了解數據的結構和內容。