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

c 中xml與json相互轉化

錢琪琛1年前8瀏覽0評論

在C語言中,XML和JSON是常見的數據交換格式。本文將介紹在C語言中如何實現XML和JSON格式的相互轉換。

在C語言中,使用第三方庫libxml2可以很方便地進行XML格式的讀寫操作。首先需要安裝libxml2庫。

sudo apt-get install libxml2-dev

轉換XML格式到JSON格式的方法是:

#include <libxml/parser.h>
#include <libxml/tree.h>
#include <json-c/json.h>
int xml2json(const char* xml_str, char* json_str)
{
xmlDocPtr doc;
json_object* json_obj;
doc = xmlReadMemory(xml_str, strlen(xml_str), "noname.xml", NULL, 0);
// 解析XML
if (doc == NULL) {
fprintf(stderr, "Failed to parse xml.\n");
return -1;
}
json_obj = json_object_new_string(xml2json(doc->children));
// 轉換為JSON
strcpy(json_str, json_object_to_json_string(json_obj));
// 將JSON字符串復制到json_str
json_object_put(json_obj);
xmlFreeDoc(doc);
// 釋放資源
return 0;
}

通過libjson-c庫,我們也可以很容易地進行JSON格式的讀寫操作。首先需要安裝libjson-c庫。

sudo apt-get install libjson-c-dev

轉換JSON格式到XML格式的方法是:

#include <json-c/json.h>
#include <libxml/xmlmemory.h>
#include <libxml/tree.h>
int json2xml(const char* json_str, char* xml_str)
{
json_object* json_obj;
xmlDocPtr doc;
xmlNodePtr root_node;
json_obj = json_tokener_parse(json_str);
// 解析JSON
doc = xmlNewDoc(BAD_CAST "1.0");
// 創建XML文檔
root_node = xmlNewNode(NULL, BAD_CAST "root");
xmlDocSetRootElement(doc, root_node);
json2xml_impl(root_node, json_obj);
// 遞歸轉換
xmlDocDumpMemory(doc, (xmlChar**) &xml_str, NULL);
// 將XML文檔轉換為字符串
xmlFreeDoc(doc);
json_object_put(json_obj);
// 釋放資源
return 0;
}

總之,通過上述方法,我們可以輕松地在C語言中實現XML和JSON格式的相互轉換。