【问题标题】:Converting JSON to XML doesn't work将 JSON 转换为 XML 不起作用
【发布时间】:2014-11-23 23:52:50
【问题描述】:

我正在尝试使用 newtonsoft 将 JSON 转换为 XML,但由于左侧部分包含数字并且 XML 不能包含以数字开头的元素,因此转换失败

例子:

{
   "PLC": {
       "10": 7.6,
       "9": 1.8,
       "4": 11
      }
}

有什么办法可以安全地转换它吗?或者让它为以数字开头的元素添加“_”前缀?

【问题讨论】:

  • 你用这个做什么?
  • 您可能只需要遵循文档中的指导:Converting between JSON and XML“如果从 JSON 创建的 XML 与您想要的不匹配,那么您将需要手动转换它。”。考虑在您的帖子中添加更多信息,说明您想要什么样的 XML 作为结果,或者您为什么尝试进行这种转换。
  • 一个例子是 <_10>7.6<_9>1.8<_4>11 我需要它,所以我可以工作将文档作为 XElement

标签: c# .net xml json


【解决方案1】:

显然没有通用的方法可以安全地转换它。 XML 元素和属性名称不能以数字开头。如果您使用诸如在元素名称前添加_ 或在特殊命名空间(例如&lt;atikot:item id="10"&gt;7.6&lt;/atikot:item&gt;)中引入特殊元素等技巧来表达此构造,您将失去通用性,您将需要对反向转换、XML 序列化和反序列化也是。如果您使用任何 DTD,您也可能会遇到问题。你要先问问自己,转换后需要获取什么样的XML,用于什么用途。

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 2013-05-09
    • 2017-10-09
    • 2014-04-11
    相关资源
    最近更新 更多