欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 三級菜單json數據庫

李中冰1年前7瀏覽0評論

在很多開發中,我們經常需要用到菜單,而三級菜單是比較常用的菜單結構之一。為了更好的管理和存儲三級菜單數據,我們可以使用json格式來存儲三級菜單數據。

{
"menu": [
{
"id":1,
"name":"菜單1",
"children": [
{
"id": 11,
"name": "子菜單11",
"url": "/menu1/child11"
},
{
"id": 12,
"name": "子菜單12",
"url": "/menu1/child12"
}
]
},
{
"id":2,
"name":"菜單2",
"children": [
{
"id": 21,
"name": "子菜單21",
"url": "/menu2/child21"
},
{
"id": 22,
"name": "子菜單22",
"url": "/menu2/child22"
}
]
}
]
}

以上是一個簡單的三級菜單json數據結構。我們可以用c語言來讀取和解析json數據。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cjson/cJSON.h>
#define JSON_FILE "menu.json"
int main() {
FILE *fp;
char buf[BUFSIZ];
cJSON *json;
cJSON *root;
cJSON *menu;
cJSON *submenu;
cJSON *child;
int i, j, k;
if ((fp=fopen(JSON_FILE, "rb")) == NULL) {
printf("open file error!\n");
exit(EXIT_FAILURE);
}
fread(buf, sizeof(buf), 1, fp);
fclose(fp);
json = cJSON_Parse(buf);
if (json == NULL) {
printf("parse json error!\n");
exit(EXIT_FAILURE);
}
root = cJSON_GetObjectItem(json, "menu");
for (i = 0; i< cJSON_GetArraySize(root); i++) {
menu = cJSON_GetArrayItem(root, i);
printf("menu[%d]:%s\n", i, menu->valuestring);
for (j = 0; j< cJSON_GetArraySize(menu->children); j++) {
submenu = cJSON_GetArrayItem(menu->children, j);
printf("\tsubmenu[%d].name:%s, url:%s\n", j, submenu->name, submenu->url);
for (k = 0; k< cJSON_GetArraySize(submenu->children); k++) {
child = cJSON_GetArrayItem(submenu->children, k);
printf("\t\tchild[%d].name:%s, url:%s\n", k, child->name, child->url);
}
}
}
cJSON_Delete(json);
return 0;
}

以上是一個簡單的讀取json數據結構的程序代碼。通過上述程序代碼,我們可以快速的讀取和處理三級菜單的數據信息。