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

c xml 轉 json

夏志豪1年前8瀏覽0評論

在Web開發中,常常需要進行不同數據格式間的轉換,其中XML和JSON是兩種常見的數據格式。C語言中的libxml和cJSON庫分別提供了XML和JSON的解析和創建功能。但是,如果需要將XML格式的數據轉換為JSON格式,需要一些額外的工作。

下面我們將使用libxml和cJSON庫來演示如何將XML格式的數據轉換為JSON格式。

首先,我們需要包含libxml和cJSON的頭文件。在解析XML時,我們使用xmlReadFile函數將XML文件讀入一個xmlDocPtr類型的文檔樹指針,然后通過xmlNodePtr類型的節點指針和xmlChar類型的字符指針,遍歷文檔樹并獲取XML節點的名稱和值,保存到cJSON類型的JSON結構體實例中。

xmlDocPtr doc;
xmlNodePtr cur;
xmlChar *content;
//讀取XML文件到doc指針
cur = xmlDocGetRootElement(doc);
cJSON *root = cJSON_CreateObject();
if (cur == NULL) {
xmlFreeDoc(doc);
return;
}
for (cur = cur->xmlChildrenNode; cur != NULL; cur = cur->next) {
content = xmlNodeGetContent(cur);
cJSON_AddItemToObject(root, xmlNodeGetLabel(cur), cJSON_CreateString(content));
xmlFree(content);
}

在生成JSON格式數據時,我們需要使用cJSON庫提供的函數,將JSON結構體實例保存到一個指定文件或字符串中。在此過程中,我們可以通過cJSON_CreateObject和cJSON_AddItemToObject函數遞歸生成JSON結構體。

FILE *f;
f = fopen("data.json","w");
fprintf(f,"%s", cJSON_Print(root));
fclose(f);
cJSON_Delete(root);

通過這種方式,我們可以將XML格式的數據轉換為JSON格式,以適應不同的開發需求和應用場景。