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" />

但对于第二个示例,需要带有 NameValue 属性 的 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 都有详细记录,并且很容易找到示例。