Javascript 将JSON格式化为XML
我正在努力创建一个将JSON对象转换为XML的通用函数 注意:标题和正文中的列数可能会有所不同。此外,我对页脚中的值不感兴趣 我有以下JSON结构:Javascript 将JSON格式化为XML,javascript,json,xml,Javascript,Json,Xml,我正在努力创建一个将JSON对象转换为XML的通用函数 注意:标题和正文中的列数可能会有所不同。此外,我对页脚中的值不感兴趣 我有以下JSON结构: { "header": [ "Room", "Maximum Capacity" ], "footer": null, "body": [ [ "Game Room", "0&qu
{
"header": [ "Room", "Maximum Capacity" ],
"footer": null,
"body": [
[ "Game Room", "0" ],
[ "gymnasium", "" ],
[ "Library", "200" ]
]
}
我想格式化:
<root>
<row>
<Room>Game Room</Room>
<MaximumCapacity>0</MaximumCapacity>
</row>
<row>
<Room>gymnasium</Room>
<MaximumCapacity></MaximumCapacity>
</row>
<row>
<Room>Library</Room>
<MaximumCapacity>200</MaximumCapacity>
</row>
</root>
我认为这对你来说是一个很好的挑战,所以我不是给你一个解决方案,只是指出几个提示: 您可以使用JSON.parse从字符串解析JSON 您可以通过使用Object.entries来迭代JSON键/值对,例如Object.entriesjson.forEach[key,value]=>; 您需要一个递归函数,因为json和xml的嵌套可以有多个级别。所以你可能会有这样的情况:
首先,我假设您已经将JSON转换为JavaScript对象 您应该将标题值转换为标记名。这将涉及删除空格,但通常您可能需要做更多的工作,以避免无效的标记名。我将在这里集中讨论空间移除 然后使用DOMParser API创建一个XML文档。这样可以避免XML标记内容中的无效字符陷阱 根据从头数据收集的标记名,迭代主体数据并动态创建XML节点 下面是它的工作原理: 设obj={ 标题:[房间,最大容量], 页脚:空, 正文:[ [游戏室,0], [体育馆], [图书馆,200] ] }; 让tagNames=obj.header.mapname=>name.replace/\s*/g; 让parser=newdomparser; 设xmlDoc=parser.parseFromString,text/xml; 设root=xmlDoc.getElementsByTagNameroot[0]; 对于obj.body的let数据{ 让row=xmlDoc.createElementrow; 对于let i=0;i
function jsonToXml(json) {
return Object.entries(json).map(([key, value]) => {
if(isArray(value) || isObject(value)) { // TODO: Find out how to check if a variable is an array or object!
return jsonToXml(value); // TODO: Think about on how wrap the value in the xml tag!
}
return value // TODO: Think about on how wrap the value in the xml tag!
});
}