转换从我的soap响应收到的字段,以匹配JSON对象中的字段

问题描述:

我有一个关于如何从soap调用中获取响应并将其传递给JSON对象的问题。转换从我的soap响应收到的字段,以匹配JSON对象中的字段

让我先铺陈情况:

首先我送基于XML的请求,基于SOAP的Web服务。我以xml格式接收响应,我希望能够将此响应传递给JSON对象,并在转换从我的soap响应中接收到的字段的方式上匹配JSON对象中的字段。

例如,我可能有

<FirstName>Bob<FirstName> 

在我的SOAP响应现场,但我需要变换到一个合适的一个名为“第一”的变量在我的JSON对象。

对此问题的任何帮助将不胜感激,我是所有这些技术的新手,并且已经基本上获得了基本教程并将它们扩展到目前为止我所需要的内容,但现在已陷入困境。如果需要更多的澄清,我可以这么做!

+0

您可以详细介绍一下您的技术堆栈吗?您是否尝试在JavaScript中的另一个服务中转换服务调用? – JustEngland 2013-02-22 01:28:33

+0

当然可以。基本上我们有我们自己的一组web服务,它们返回JSON对象响应。外部来源发送请求,我们将这些对象返回给他们。但存储信息的另一点是构建在SOAP上的另一个外部Web服务源。所以我们必须发送xml格式的soap请求给他们并且接收他们的回应。因此,它们以XML格式的响应需要转换回JSON,因此我们可以将它作为我们结尾的一个分支。这是所有基于Java的 – parchambeau 2013-02-22 01:37:36

有一些标准的方法可以从XML转换成JSON(Parker conventionBadgerfish或使用JsonML等),但他们的工作很好,当你有一个1:XML和JSON之间一一对应,你不介意有一些怪异暴露给客户的JSON(尊重所选标准)。

基于您提供的详细信息我假设您已经有了自然的JSON表示,并且您没有1:1的对应关系,因为FirstName XML元素以JSON映射到First

您的应用程序位于JSON客户端和SOAP外部存储之间,因此在这种情况下,最可控制的方式是使用应用程序中的对象并为对象提供两种表示形式:JSON和XML。

您的客户端发送一个JSON请求,将其解组为一个请求对象,将对象编组为XML,将其发送到SOAP存储器,您将得到的结果解析为一个响应对象,您现在编组为一个XML JSON响应,您最终发送回客户端。通过使用中间对象,您可以使用JAXB作为XML表示,并使用Jackson's support for JAXB annotation作为JSON。

无论哪种方式,手动或使用现有的库,你必须从XML映射到JSON。