【问题标题】:Transform the fields I received from my soap response, to match the fields in the JSON object转换从我的肥皂响应中收到的字段,以匹配 JSON 对象中的字段
【发布时间】:2013-02-21 21:50:52
【问题描述】:

我有一个问题,关于我应该如何从一个肥皂调用中获取响应,并将它传递给一个 JSON 对象。

让我先介绍一下情况:

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

例如,我可能有

<FirstName>Bob<FirstName> 

作为我的肥皂响应中的一个字段,但我需要将其转换为适合我的 JSON 对象中名为“First”的变量。

非常感谢您对此事的任何帮助,我对所有这些技术都是新手,并且大部分时间都在使用基本教程并将它们扩展到我目前需要的内容,但在这一点上已经陷入困境。如果需要更多说明,我可以这样做!

【问题讨论】:

  • 您能否详细介绍一下您的技术堆栈?您是否尝试在 javascript 中将服务调用转换为另一个服务?
  • 当然。基本上,我们有自己的一组 Web 服务,它们返回 JSON 对象响应。外部来源发送请求,我们将这些对象返回给他们。但是信息的存储点是构建在 SOAP 上的 Web 服务的另一个外部来源。所以我们必须向他们发送xml格式的soap请求并接收他们的响应。因此,来自它们的 XML 格式的响应需要转换回 JSON,以便我们可以将其作为响应传回。这都是基于 Java 的

标签: xml json soap


【解决方案1】:

有一些从 XML 转换为 JSON 的标准方法(Parker conventionBadgerfish 或使用 JsonML 等),但当您在 ​​XML 和 JSON 之间有 1:1 对应关系并且您没有请注意向客户端公开一些看起来很奇怪的 JSON(以尊重所选标准)。

根据您提供的详细信息,我假设您已经有一个自然的 JSON 表示,并且由于 FirstName XML 元素映射到 JSON 中的 First,因此您没有 1:1 的对应关系。

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

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

无论是手动还是使用现有库,您都必须从 XML 映射到 JSON。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多