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

c 遍歷 json

李中冰2年前8瀏覽0評論

C語言是一門高效的編程語言,而JSON(JavaScript Object Notation)又是一種輕量級的數據交換格式,很多時候我們都需要在C語言中讀取或修改JSON格式的數據。為此,我們可以使用一些C語言的庫來遍歷JSON格式數據,并對其進行操作。

在C語言中,可以使用第三方庫 cJSON 來操作JSON數據。使用該庫需要先將其下載到本地,然后在代碼中包含cJSOn.h頭文件即可。在遍歷JSON數據時,可以使用cJSON_Parse()函數將JSON字符串解析成cJSON對象,然后通過cJSON的API函數來進行遍歷和操作。

//示例代碼,使用cJSON庫遍歷JSON格式數據
#include#include#include "cJSON.h"
void traverse(cJSON* node)
{
if(node == NULL) return;
//遍歷節點,根據節點類型進行處理
switch(node->type)
{
case cJSON_Object:
printf("Object:");
cJSON* child = node->child;
while(child != NULL)
{
printf(" %s", child->string);
traverse(child);
child = child->next;
}
printf("\n");
break;
case cJSON_Array:
printf("Array:");
cJSON* item = node->child;
while(item != NULL)
{
traverse(item);
item = item->next;
}
printf("\n");
break;
case cJSON_String:
printf("String: %s\n", node->valuestring);
break;
case cJSON_Number:
printf("Number: %f\n", node->valuedouble);
break;
//還可以處理其他類型的節點,如布爾型、null等
default:
break;
}
}
int main()
{
//假設我們有如下的JSON格式數據
char* json = "{\"name\":\"Tom\",\"age\":20,\"interests\":[\"reading\",\"music\"]}";
//解析JSON數據
cJSON* root = cJSON_Parse(json);
//遍歷JSON數據
traverse(root);
//釋放內存
cJSON_Delete(root);
return 0;
}

在上面的示例代碼中,我們定義了一個遞歸函數traverse(),它用來遍歷JSON數據。當遇到Object類型的節點時,它會遍歷該Object的各個child,并依次打印出該child的名字,然后遞歸遍歷該child的子節點;當遇到Array類型的節點時,它會遍歷該Array的各個item,并遞歸遍歷該item的子節點;當遇到String類型或Number類型的節點時,它會直接打印出節點的值。通過上述方式,我們可以方便地遍歷JSON格式數據,并對其進行操作。