在開發Web應用程序時,我們經常需要在不同的格式之間轉換數據。C語言中,一些常見的數據格式包括XML和JSON。
在將XML數據轉換為JSON數據時,我們可以使用一些現成的庫來進行。例如,libxml和json-c都可以在C語言中使用。
//使用libxml將XML轉換為JSON #include#include #include #include #include int main() { char *xml = " "; xmlDocPtr doc; xmlNodePtr root; doc = xmlParseMemory(xml, strlen(xml)); root = xmlDocGetRootElement(doc); json_object *jobj = json_object_new_object(); xmlNodePtr cur = NULL; for (cur = root->children; cur != NULL; cur = cur->next) { if (cur->type == XML_ELEMENT_NODE) { char *name = (char *)cur->name; char *content = (char *)xmlNodeGetContent(cur); json_object *jcontent = json_object_new_string(content); json_object_object_add(jobj, name, jcontent); } } printf("%s\n", json_object_to_json_string(jobj)); xmlFreeDoc(doc); return 0; } John 30
在上面的代碼中,我們首先定義了一個XML字符串,并使用libxml的函數將其解析為一個XML文檔對象。然后,我們遍歷文檔中的每個元素,將其轉換為JSON對象并添加到一個新的JSON對象中。最后,我們使用json-c庫中的函數將JSON對象轉換為字符串,并輸出結果。
使用上述代碼,可以將XML字符串轉換為以下JSON字符串:
{ "name": "John", "age": "30" }
可以看到,每個XML元素都被轉換為了一個JSON屬性,并且它們的值都是字符串。如果需要將XML元素轉換為其他類型的值,例如數字或布爾值,我們可以使用json-c庫中提供的各種函數。