C語言是一門廣泛應用于計算機操作系統(tǒng)、編譯器、解釋器、瀏覽器等多個領域的高級程序設計語言。而JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。與XML相比,JSON更加簡潔易讀。下面介紹如何在C語言中將JSON格式轉換成XML文件。
#include<stdio.h> #include<json-c/json.h> #include<libxml2/libxml/parser.h> #include<libxml2/libxml/tree.h> int main() { char *json_data = "{\"name\":\"Tom\",\"age\":23,\"gender\":\"male\"}"; struct json_object *root = json_tokener_parse(json_data); xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0");//創(chuàng)建xml文檔 xmlNodePtr root_node = xmlNewNode(NULL, BAD_CAST"root");//創(chuàng)建根節(jié)點 xmlDocSetRootElement(doc, root_node);//將根節(jié)點添加到文檔中 xmlNodePtr node = xmlNewChild(root_node, NULL, BAD_CAST"person", NULL);//創(chuàng)建person節(jié)點 xmlNewProp(node, BAD_CAST"name", BAD_CAST json_object_get_string(json_object_object_get(root, "name")));//添加name屬性 xmlNewProp(node, BAD_CAST"age", BAD_CAST json_object_get_string(json_object_object_get(root, "age")));//添加age屬性 xmlNewProp(node, BAD_CAST"gender", BAD_CAST json_object_get_string(json_object_object_get(root, "gender")));//添加gender屬性 //保存xml文件 xmlSaveFile("person.xml", doc); xmlFreeDoc(doc); xmlCleanupParser(); return 0; }
代碼實現(xiàn)如上,主要使用了json-c庫和libxml2庫。在代碼中定一個了一個JSON格式字符串,解析成json_object對象,并采用libxml2庫創(chuàng)建xml文檔,添加根節(jié)點、子節(jié)點和節(jié)點屬性,最后將xml文件保存至磁盤中。
以上便是在C語言中將JSON格式轉換成XML文件的簡單實現(xiàn),通過此方法可以方便地將JSON格式的數(shù)據(jù)轉換成XML格式,并進行數(shù)據(jù)交換與處理。