将JSON列表转换为XML并保留格式

时间:2019-11-20 17:00:40

标签: json xml xmldocument

我有一个JSON文件,可通过以下字段将其转换为XML格式。对于“格式”和“媒体格式”,它们是整数列表。

    "Stars": 4.5000000000,
    "Reviews": 11,
    "Formats": [5,6],
    "MediaFormats": [1, 2] 

我的预期结果是

<Price>29</Price>
<Stars>4.5</Stars>
<Reviews>11</Reviews>
<Formats>5,6</Formats>
<MediaFormats>1,2</MediaFormats>

我尝试了XmlDocument xmlDoc = JsonConvert.DeserializeXmlNode,但实际结果是

<Price>29</Price>
<Stars>4.5</Stars>
<Reviews>11</Reviews>
<Formats>5</Formats>
<Formats>6</Formats>
<MediaFormats>1</MediaFormats>
<MediaFormats>2</MediaFormats>

有什么办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

使用XSLT对结果进行后处理。没有现成的JSON到XML转换器(或XML到JSON转换器)每次都会为您提供所需的结果。您必须准备对其进行自定义,而XSLT是实现此目的的最佳工具。

您可以使用来实现所需的格式

<xsl:for-each-group select="*" group-adjacent="node-name(.)">
  <xsl:copy>
    <xsl:value-of select="current-group()" separator=","/>
  </xsl:copy>
</xsl:for-each-group>

当然,如果您仍在使用XSLT,那么您可以考虑使用XSLT 3.0的xml-to-json()json-to-xml()函数,因此都可以使用一个工具完成。