我正在构建一个POC。我为Google Plus创建了一个直通代理服务。不使用任何代理服务,我得到的是我的输出:
{ "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":"\u003cb\u003ehie, abhishek - ma full name \u003c/b\u003e\u003cdiv\u003e\u003cb\u003em a DANCER ,\u003c/b\u003e\u003c/div\u003e\u003cdiv\u003e\u003cb\u003ei luv ma dancing .\u003c/b\u003e\u003c/div\u003e\u003cdiv\u003e\u003cb\u003ei care ma dancing ,\u003c/b\u003e\u003c/div\u003e\u003cdiv\u003e\u003cb\u003ei jus hv a gr8 thng in me dats ma dancing.\u003c/b\u003e\u003c/div\u003e", "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" } ] }
但是,当我尝试使用简单的传递服务执行相同操作时,我只会得到:
{ "kind":"plus#person" }
我在wso2esb网站上看到他们有一个错误,并且为解决该错误而给出的解释是所接收的json数据格式不正确。但是现在我该如何解决该问题。我的意思是,在esb将其转换为json数据之前,他们可以通过任何方式操作json数据。
我们已经在最新版本的ESB(版本4.5.0)中解决了此问题。默认情况下,它带有JSONMessageFormatter / JSONBuilder,它可以处理具有多个键的JSON负载。
我们还提出了另一种解决方案,用于处理涉及不同类型的JSON <-> XML(或JSON <-> JSON)转换的消息流。JSONStreamBuilder并且JSONStreamFormatter可以用来实现与“脚本”调停这样的场景。看一下ESB 4.5.0中的样本#441。
JSONStreamBuilder
JSONStreamFormatter
运行样本#441;
ant newjsonclient