我有一个问题,关于如何从soap调用中获取响应,并将其传递给JSON对象。
让我先说明一下情况:
首先,我将基于xml的请求发送到基于SOAP的Web服务。我收到了xml格式的响应,我希望能够将此响应传递给JSON对象,并在路上转换我从soap响应中收到的字段,以匹配JSON对象中的字段。
例如,我可能有
<FirstName>Bob<FirstName>
作为我的soap响应中的一个字段,但我需要将其转换为适合我的JSON对象中名为“First”的变量。
对此问题的任何帮助都将非常感激,我是所有这些技术的新手,并且已经大部分时间都使用基本教程,并将它们扩展到我目前所需的内容,但此时已经陷入困境。如果需要进一步澄清,我可以这样做!
答案 0 :(得分:1)
有一些标准方法可以从XML转换为JSON(Parker convention,Badgerfish或使用JsonML等),但是当XML与XML之间的对应关系为1:1时,它们运行良好JSON,你不介意让一些奇怪的JSON暴露给客户端(尊重所选的标准)。
根据您提供的详细信息,我假设您已经拥有自然的JSON表示,并且您没有1:1的对应关系,因为FirstName
XML元素在JSON中映射到First
您的应用程序位于JSON客户端和SOAP外部存储之间,因此在这种情况下,最可控的方式是使用应用程序中的对象,并为对象提供两种表示形式:JSON和XML。
您的客户端发送一个JSON请求,您将其解组到请求对象,将对象编组为XML,将其发送到SOAP存储,您将结果作为XML解组为您现在编组为JSON的响应对象的XML你最终发回给客户的回复。通过使用介于两者之间的对象,您可以使用JAXB表示XML表示,使用Jackson's support for JAXB annotation表示JSON。
无论哪种方式,手动或使用现有库,您都必须从XML映射到JSON。