将SOAP响应转换为JSON(使用API),因此现在需要自定义JSON响应,删除一些属性并更改字段名称。如下面的例子。
示例:
{
"s:Envelope": {
"xmlns:s": "http://schemas.xmlsoap.org/soap/envelope/",
"s:Body": {
"Response": {
"xmlns": "http://www.tempuri.org/",
"Result": {
"xmlns:a": "http://wwww.datacontract.org/",
"a:CodeSet": [
{
"a:FullDescription": {
"i:nil": true
},
"a:AgeFrom": {
"i:nil": true
},
"a:ShortDescription": {
"i:nil": true
},
"a:Code": "111111",
"a:LongDescription": "Have a Nice Day",
"a:EffectiveDate": "01/01/2017"
},
{
"a:FullDescription": {
"i:nil": true
},
"a:AgeFrom": {
"i:nil": true
},
"a:ShortDescription": {
"i:nil": true
},
"a:Code": "222222",
"a:LongDescription": "Long Working Day",
"a:EffectiveDate": "01/01/2018"
}
]
}
}
}
}
}
要:
{
"data": [
{
"CODE": "111111",
"EFFECTIVE_DATE": "2017-01-01",
"TERM_DATE": "9999-12-31",
"AGE_FROM": "true",
"SHORT_DESC": "HND",
"LONG_DESC": "Have a Nice Day"
},
{
"CODE": "2222222",
"EFFECTIVE_DATE": "2018-01-01",
"TERM_DATE": "9999-12-31",
"AGE_FROM": "true",
"SHORT_DESC": "LWD",
"LONG DESC": "Long Working Day"
}
]
}
关于转换它的简单方法的建议,是指任何API或注释吗? 注意:响应时间已超过15秒。
答案 0 :(得分:0)
执行以下操作
注意:有很多方法可以转换To / From json Java对象From / To Json String,并且有大量的资源可以在线查看。我离开了你,研究什么是最适合你的需要。
答案 1 :(得分:0)
您可以尝试使用JSON-P 1.1。以下是Adam Bien博客的一个例子:
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObject;
//...
@Test
public void jsonObjectUpdate() {
String key = "update";
String JAVA_EE_8 = "is easy with Java EE 8";
JsonObject initial = Json.createObjectBuilder().
add(key, "was hard in Java EE 7").
build();
JsonObject updated = Json.createObjectBuilder(initial).
add(key, JAVA_EE_8).
build();
assertThat(updated.getString(key), is(JAVA_EE_8));
assertThat(updated.size(), is(1));
}
完整文章在这里:http://www.adam-bien.com/roller/abien/entry/updating_jsonobjects_with_json_p
或者,如果你想要一个更面向对象的aproach,你应该添加自己的JsonObject实现(这也是JSON-P规范)。您的实现将接受初始JsonObject的ctor并实现用于从中提取和返回data
JsonArray的逻辑。