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

c xml轉化為json數據

夏志豪1年前7瀏覽0評論

XML(可擴展標記語言)和JSON(JavaScript對象表示法)是目前流行的兩種數據格式。XML是一種通用的標記語言,用于描述數據。JSON是一種輕量級的數據格式,用于表示結構化數據。在開發過程中,時常需要將XML數據轉換為JSON格式,這樣可以更輕松地在基于Web的應用程序中使用這些數據。以下是將C中的XML數據轉換為JSON格式的示例。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <json-c/json.h>
int main(int argc, char *argv[])
{
// XML數據字符串
char *xml_data = "<book><title>Harry Potter</title><author>J.K. Rowling</author></book>";
// XML解析
xmlDocPtr doc = xmlReadMemory(xml_data, strlen(xml_data), NULL, NULL, 0);
xmlNodePtr root = xmlDocGetRootElement(doc);
// 創建JSON對象
struct json_object *json_obj = json_object_new_object();
// 遍歷XML節點并轉換為JSON
xmlNodePtr cur_node = root->xmlChildrenNode;
while (cur_node != NULL) {
if (cur_node->type == XML_ELEMENT_NODE) {
char *key = (char *)xmlGetProp(cur_node, (const xmlChar *)"name");
char *value = (char *)xmlNodeGetContent(cur_node);
struct json_object *json_value = json_object_new_string(value);
json_object_object_add(json_obj, key, json_value);
}
cur_node = cur_node->next;
}
// 輸出JSON字符串
const char *json_str = json_object_to_json_string(json_obj);
printf("JSON:\n%s\n", json_str);
// 釋放內存
json_object_put(json_obj);
xmlFreeDoc(doc);
return 0;
}

以上代碼使用libxml2和json-c庫將XML數據轉換為JSON格式。首先,使用xmlReadMemory函數將XML數據加載到內存中,并使用xmlDocGetRootElement函數獲取根節點。接下來,在while循環中遍歷所有XML節點,并將其轉換為JSON對象。最后,將JSON對象轉換為JSON字符串并輸出。