C# - 如何将复杂的 json 转换为 XML 并将名称和值 属性 转换为标签
C# - How to convert complex json to XML with name and value property to tags
尝试使用 JsonConvert.DeserializeXmlNode(Json.ToString()) 将 json 转换为 XML 及其工作但不是预期的,
第一个例子:
JSON :
"Emailid": ""
已转换 XML:
<Emailid></Emailid>
第一个示例按预期工作
第二个例子:
JSON :
"ProposalDate": {
"Name": "Proposal Date",
"Value": "06/05/2019"
}
已转换 XML:
<ProposalDate>
<Name>Proposal Date</Name>
<Value>06/05/2019</Value>
</ProposalDate>
第二个示例的预期 XML:
<ProposalDate Name="Proposal Date" Value="06/05/2019" />
但对于第二个示例,需要带有 Name 和 Value 属性 的 ProposalDate 标签。
我该怎么办?
您可以先将 JSON 反序列化为 class,将 [XmlAttribute]
应用于 class 属性,然后将 class 序列化为 XML.见 XmlAttributeAttribute Class documentation.
您的 class 看起来像这样:
public class ProposalDate
{
[XmlAttribute]
public string Name { get; set; }
[XmlAttribute]
public string Value { get; set; }
}
将 JSON 反序列化为对象和将对象序列化为 XML 都有详细记录,并且很容易找到示例。
尝试使用 JsonConvert.DeserializeXmlNode(Json.ToString()) 将 json 转换为 XML 及其工作但不是预期的,
第一个例子:
JSON :
"Emailid": ""
已转换 XML:
<Emailid></Emailid>
第一个示例按预期工作
第二个例子:
JSON :
"ProposalDate": { "Name": "Proposal Date", "Value": "06/05/2019" }
已转换 XML:
<ProposalDate>
<Name>Proposal Date</Name>
<Value>06/05/2019</Value>
</ProposalDate>
第二个示例的预期 XML:
<ProposalDate Name="Proposal Date" Value="06/05/2019" />
但对于第二个示例,需要带有 Name 和 Value 属性 的 ProposalDate 标签。 我该怎么办?
您可以先将 JSON 反序列化为 class,将 [XmlAttribute]
应用于 class 属性,然后将 class 序列化为 XML.见 XmlAttributeAttribute Class documentation.
您的 class 看起来像这样:
public class ProposalDate
{
[XmlAttribute]
public string Name { get; set; }
[XmlAttribute]
public string Value { get; set; }
}
将 JSON 反序列化为对象和将对象序列化为 XML 都有详细记录,并且很容易找到示例。