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

c xml 轉 json

張吉惟1年前9瀏覽0評論

當我們在處理XML格式數據時,有時需要將其轉換為JSON格式。這可以通過一些庫或者工具來實現,其中最常用的是cJSON。

下面是使用cJSON庫將XML轉換為JSON的示例代碼:

#include "cJSON.h"
#include "tinyxml.h"
cJSON* XmlToJson(TiXmlElement* root)
{
cJSON* json = cJSON_CreateObject();
TiXmlAttribute* attr = NULL;
TiXmlNode* node = NULL;
TiXmlElement* ele = NULL;
cJSON* childJson = NULL;
cJSON_AddStringToObject(json, "name", root->Value());
for (attr = root->FirstAttribute(); attr != NULL; attr = attr->Next())
{
cJSON_AddStringToObject(json, attr->Name(), attr->Value());
}
for (node = root->FirstChild(); node != NULL; node = node->NextSibling())
{
ele = node->ToElement();
if (ele)
{
childJson = XmlToJson(ele);
cJSON_AddItemToArray(cJSON_GetObjectItem(json, "children"), childJson);
}
else
{
cJSON_AddStringToObject(json, node->Value(), node->ToText()->Value());
}
}
return json;
}

這是將一個XML節點轉換為JSON對象的函數。對于每個XML節點,我們需要分解其標簽名、屬性以及子節點信息,并在JSON對象中保存這些數據。

如果需要將整個XML文檔轉換為JSON格式,則我們可以通過遍歷文檔的根節點來完成:

#include "cJSON.h"
#include "tinyxml.h"
cJSON* XmlDocToJson(TiXmlDocument* doc)
{
cJSON* json = cJSON_CreateObject();
TiXmlElement* root = doc->RootElement();
cJSON_AddStringToObject(json, "name", root->Value());
cJSON* children = cJSON_CreateArray();
cJSON_AddItemToObject(json, "children", children);
cJSON* childJson = XmlToJson(root);
cJSON_AddItemToArray(children, childJson);
return json;
}

以上示例代碼使用了cJSON和TinyXML兩個庫。首先,我們需要將XML文檔解析為一棵樹,并通過遍歷各個節點來生成JSON對象,最后將其打印輸出或者以字符串形式返回。

因此,cJSON庫提供了豐富的API函數可以用來處理JSON格式數據,其簡單易用,同時也易于擴展。