有什么方法可以确保XML和JSON文档能够正确地使用不同的库/语言进行编组和解组?

时间:2014-05-14 17:19:50

标签: xml json type-conversion jax-rs

我试图看看,在2014年,我们是在一个通过休息服务返回JSON或XML文档的地方,例如,JAX-RS spring实现在另一个库可能用另一种语言使用时会兼容吗?如果我编写一个使用Java JAX-RS api的Windows移动.net客户端,那么JAX-RS将如何在.net客户端中正确地返回json(和/或xml)转换?或者各种语言和库存在问题吗?

我问这个是因为特别是在一个案例中,我们返回一个项集合,并且在XML中它将导致这个:

<items>
  <item attr="value">another value</item>
  <item attr="value2">another value2</item>
</items>

生成的JSON类似于:

"items": [
   {"attr":"value","value":"another value"},
   {"attr":"value2", "value":"another value2"}
  ]

然而,在使用在线xml到json和json到xml ..当我粘贴上面的XML并获得上面的json转换..然后通过上面的json进入json到xml转换器.. xml是不同的..它变成了:

<items>
  <item>
    <element attr="value">another value</element>
    <element attr="value2">another value2</element>
  </item>
</items>

我担心的是在我们的服务端代码上..我们使用一个库来获取传入的xml或json并将其转换为一个对象。如果由于某些客户端编组而发送上述XML,那么我们的服务器端将抛出异常......无法处理该类型。

在某些情况下,我还会看到将xml属性转换为“@attrName”的JSON:“value”。

那么..有没有办法确保我们返回的json和xml是“正确的”并且可以被任何客户端读取/解析?我们应该记录一些关于返回的json的类型的内容,这将提供有关如何正确配置不同库以确保从数据封送相同json的提示吗?我在Eclipse Moxy中看到了一些可以设置的配置。

在我过去,我只是简单地使用Jersey和JAX-RS,它为我处理了json和xml ..我从来没有想过像我的JAX-RS发送到不兼容的东西的不同的消费者库这样的问题,特别是在例如,他们使用我们的XSD在他们选择的语言/库中生成POJO,这可能与我们的XSD到POJO生成的内容不匹配。

0 个答案:

没有答案