在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格式的相互轉換。
上一篇es6 合并返回json
下一篇在文本字段中反應材料邊距