WSO2 ESB 无法将完整的 JSON 数据转换为 XML

2022-01-17 00:00:00 xml json wso2 java wso2esb

我正在构建 POC.我为 Google Plus 创建了一个直通代理服务.在不使用任何代理服务的情况下,我得到了这是我的输出:

I am constructing a POC. And I created a pass through proxy service for Google Plus. Without using any proxy service I get this is my output :

 {
   "kind":"plus#person",
   "etag":""ExituU7aUpmkkfyD52VulzptThw/4J1clegrhxYC2fsJOu2XWCs1Ewg"",
   "id":"117488614303967062311",
   "displayName":"Abhi NeoN",
   "name":{
      "familyName":"NeoN",
      "givenName":"Abhi"
   },
   "tagline":"hey guys ! ssup!! check out ma recnt videos... uploaded",
   "gender":"male",
   "aboutMe":"u003cbu003ehie, abhishek - ma full name u003c/bu003eu003cdivu003eu003cbu003em a DANCER ,u003c/bu003eu003c/divu003eu003cdivu003eu003cbu003ei luv ma dancing .u003c/bu003eu003c/divu003eu003cdivu003eu003cbu003ei care ma dancing ,u003c/bu003eu003c/divu003eu003cdivu003eu003cbu003ei jus hv a gr8 thng in me dats ma dancing.u003c/bu003eu003c/divu003e",
   "relationshipStatus":"single",
   "url":"https://plus.google.com/117488614303967062311",
   "image":{
      "url":"https://lh6.googleusercontent.com/-tF-ip0tUxD4/AAAAAAAAAAI/AAAAAAAAAAA/WKI3USUh_DA/photo.jpg?sz=50"
   },
   "urls":[
      {
         "value":"https://plus.google.com/117488614303967062311",
         "type":"profile"
      },
      {
         "value":"https://www.googleapis.com/plus/v1/people/117488614303967062311",
         "type":"json"
      }
   ],
   "organizations":[
      {
         "name":"our lady of nazareth high school",
         "title":"science",
         "type":"school"
      },
      {
         "name":"",
         "title":"BLUEBYTES",
         "type":"work"
      }
   ]
}

但是当我尝试使用简单的直通服务来做同样的事情时,我只得到:

But when I try to do the same using a simple pass through service I get only :

{
   "kind":"plus#person"
}

我在 wso2esb 网站上读到他们有一个错误,解决错误的解释是收到的 json 数据格式不正确.但是现在我该如何解决这个问题.我的意思是他们可以在 esb 将其转换为 json 数据之前以任何方式操作 json 数据.

I read on the wso2esb site that they had a bug and the explanation given to resolve the bug was that json data received was not in the proper format. But now how do I resolve the problem. I mean is their any way I can manipulate the json data before the esb converts it into json data.

推荐答案

我们已经在最新版本的 ESB(版本 4.5.0)中解决了这个问题.默认情况下,它带有 JSONMessageFormatter/JSONBuilder,可以处理带有多个键的 JSON 有效负载.

We have solved this issue in the latest release of ESB (version 4.5.0). By default it comes with JSONMessageFormatter/JSONBuilder that can handle JSON payloads with multiple keys.

我们还提出了另一种解决方案,用于处理涉及不同类型的 JSON <--> XML(或 JSON <--> JSON)转换的消息流.JSONStreamBuilderJSONStreamFormatter 可用于通过脚本"中介实现此类场景.查看 ESB 4.5.0 中的示例 #441.

We also came up with another solution for handling message flows that involve different types of JSON <--> XML (or JSON <--> JSON) conversions. JSONStreamBuilder and JSONStreamFormatter can be used to implement such scenarios with the 'script' mediator. Have a look at sample #441 in ESB 4.5.0.

运行示例 #441;

  • 添加 JSONStreamBuilderJSONStreamFormatter 作为构建器和repository/conf/axis2/axis2.xml 文件中 JSON 的格式化程序
  • 部署 SimpleStockQuoteService
  • 启动示例axis2server
  • 使用 'ant newjsonclient' 运行 JSON 客户端
  • Add JSONStreamBuilder and JSONStreamFormatter as the builder and formatter for JSON in repository/conf/axis2/axis2.xml file
  • Deploy SimpleStockQuoteService
  • Start the sample axis2server
  • Run the JSON client with 'ant newjsonclient'

相关文章