JSON和XML都是常用的數據交換格式,而C語言可以實現對這兩種格式的解析和生成。下面我們分別介紹C語言如何實現JSON和XML。
JSON
#include<json-c/json.h> int main() { json_object *jobj = json_object_new_object(); json_object *jstring = json_object_new_string("Hello World!"); json_object_object_add(jobj, "message", jstring); fprintf(stdout, "%s\n", json_object_to_json_string(jobj)); return 0; }
上述代碼使用了json-c庫中的API,通過json_object_new_object()和json_object_new_string()函數分別創建一個JSON對象和一個包含“Hello World!”字符串的JSON字符串。接著,使用json_object_object_add()函數將字符串添加到對象中,并使用json_object_to_json_string()將對象轉換為JSON字符串。
XML
#include<libxml/parser.h> int main() { xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0"); xmlNodePtr root = xmlNewNode(NULL, BAD_CAST"root"); xmlNodePtr node = xmlNewNode(NULL, BAD_CAST"message"); xmlNodeSetContent(node, BAD_CAST"Hello World!"); xmlDocSetRootElement(doc, root); xmlAddChild(root, node); xmlChar *s = NULL; int size = -1; xmlDocDumpFormatMemoryEnc(doc, &s, &size, "UTF-8", 1); fprintf(stdout, "%s\n", s); xmlFree(s); xmlFreeDoc(doc); return 0; }
上述代碼使用了libxml庫中的API,通過xmlNewDoc()和xmlNewNode()函數分別創建一個XML文檔和根節點,并創建一個名為“message”的子節點,在子節點中設置文本內容。接著,使用xmlDocSetRootElement()函數將根節點設置為文檔根節點,并使用xmlAddChild()函數將子節點添加到根節點下。最后,使用xmlDocDumpFormatMemoryEnc()將XML文檔輸出為XML字符串,并使用fprintf()將字符串打印到標準輸出流。