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" />
但对于第二个示例,需要具有 Name 和 Value 属性的 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