C# - 如何将复杂的 json 转换为 XML,并将名称和值属性转换为标签

Posted

技术标签:

【中文标题】C# - 如何将复杂的 json 转换为 XML,并将名称和值属性转换为标签【英文标题】:C# - How to convert complex json to XML with name and value property to tags 【发布时间】:2019-10-02 07:06:31 【问题描述】:

尝试使用 JsonConvert.DeserializeXmlNode(Json.ToString()) 将 json 转换为 XML 及其工作但不是预期的,

第一个例子:

JSON:

“电子邮件ID”:“”

转换后的 XML:

<Emailid></Emailid>

第一个示例按预期工作

第二个例子:

JSON:

“提案日期”: “名称”:“提案日期”, “价值”:“2019 年 6 月 5 日”

转换后的 XML:

<ProposalDate>
    <Name>Proposal Date</Name>
    <Value>06/05/2019</Value>
</ProposalDate>

第二个示例的预期 XML:

<ProposalDate Name="Proposal Date" Value="06/05/2019" />

但对于第二个示例,需要具有 NameValue 属性的 ProposalDate 标记。 我该怎么办?

【问题讨论】:

***.com/questions/11770630/… How to convert JSON to XML or XML to JSON?的可能重复 根本不是上述链接的副本,用户正在寻求一种将值作为属性而不是子标签转换为 XML 的方法。 【参考方案1】:

您可以先将 JSON 反序列化为类,将[XmlAttribute] 应用于类属性,然后将类序列化为 XML。请参阅XmlAttributeAttribute Class documentation。

你的班级应该是这样的:

public class ProposalDate

    [XmlAttribute]
    public string Name  get; set; 
    [XmlAttribute]
    public string Value  get; set; 


将 JSON 反序列化为对象和将对象序列化为 XML 都有很好的文档记录,并且示例很容易找到。

【讨论】:

好兄弟...按预期工作...感谢您的宝贵回复:)

以上是关于C# - 如何将复杂的 json 转换为 XML,并将名称和值属性转换为标签的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中使用添加的自定义标签将 JSON 转换为 XML

如何在 C# 中将 Xml 转换为 Json,反之亦然

C#如何将xml数据转换成Array类型或者集合类?多谢!!!

如何将复杂的 XML 转换为 .NET 类? [复制]

将 XML 转换为动态 C# 对象

将单个xml节点作为数组转换为json