这个问题不仅是从XML转换为JSON。问题是如何更改默认转换并产生我需要的JSON。
让我用一个示例解释
我收到了几种格式的XML。此XML的一个示例就是这样:
<root>
<Data Name="Var1">Value1</Data>
<Data Name="Var2">Value2</Data>
</root>
使用C#,我试图以这种方式转换为JSON:
xmldoc = "<root>" +
"<Data Name="Var1">Value1</Data>" +
"<Data Name="Var2">Value2</Data>" +
"</root>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmldoc);
string jsonText = JsonConvert.SerializeXmlNode(doc);
结果是:
{
"root": {
"Data": [
{
"@Name": "Var1",
"#text": "Value1"
},
{
"@Name": "Var2",
"#text": "Value2"
}
]
}
}
我的问题是如何将数据节点转换为" var1":" value1",而不是 @name/#text结果产生
您必须在XML避难所和JSON序列化之间添加一个中间阶段。当您将XML划分到类中时,创建一些新类,这些新类将输出您喜欢的JSON格式,然后实现一些逻辑以从XML类创建JSON类。