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

c遍歷json

榮姿康1年前7瀏覽0評論

在C語言中,遍歷JSON數據是一項非常常見的任務。JSON是一種輕量級數據交換格式,它便于閱讀和編寫,并且易于解析和生成。為了完成這個任務,我們需要使用C語言中的一個JSON解析器,例如cJSON

首先,我們需要用cJSON解析器讀取JSON數據文件。在這個例子中,我們假設JSON數據存儲在文件中:

FILE *fp;
char buffer[1024];
cJSON *json;
fp = fopen("data.json", "r");
fread(buffer, 1, 1024, fp);
fclose(fp);
json = cJSON_Parse(buffer);
if (!json) {
printf("JSON解析出錯!");
return -1;
}

一旦我們有了JSON對象,我們就可以遍歷其中的鍵值對。對于每個鍵值對,我們可以使用cJSON中提供的函數來訪問其鍵和值:

cJSON *node = json->child;
while (node != NULL) {
printf("鍵名: %s\n", node->string);
if (node->type == cJSON_String) {
printf("鍵值: %s\n", node->valuestring);
} else if (node->type == cJSON_Number) {
printf("鍵值: %f\n", node->valuedouble);
}
node = node->next;
}

在這個例子中,我們假設JSON對象只包含字符串或數字類型的鍵值對。如果JSON對象包含嵌套的鍵值對,則需要遞歸訪問子對象:

void traverse(cJSON *node) {
if (node != NULL) {
if (node->type == cJSON_Object) {
cJSON *child = node->child;
while (child != NULL) {
printf("鍵名: %s\n", child->string);
if (child->type == cJSON_String) {
printf("鍵值: %s\n", child->valuestring);
} else if (child->type == cJSON_Number) {
printf("鍵值: %f\n", child->valuedouble);
} else if (child->type == cJSON_Object) {
printf("鍵值是一個子對象:\n");
traverse(child);
}
child = child->next;
}
}
}
}
traverse(json);

以上就是一個簡單的遍歷JSON數據的例子。cJSON提供了許多函數來讀取和修改JSON數據,因此可以根據需要進行修改。