首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java:将JSON对象转换为自定义JSON

Java:将JSON对象转换为自定义JSON
EN

Stack Overflow用户
提问于 2018-06-06 03:14:39
回答 1查看 186关注 0票数 0

转换SOAP响应为JSON (使用API),所以现在需要自定义的JSON响应,其中删除一些属性和更改字段名称。就像下面的例子。

示例:

代码语言:javascript
复制
{
  "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"
            }
          ]
        }
      }
    }
  }
}

至:

代码语言:javascript
复制
   {
  "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秒。

EN

回答 1

Stack Overflow用户

发布于 2018-06-06 04:47:11

您可以尝试使用JSON-P1.1。下面是Adam Bien博客中的一个例子:

代码语言:javascript
复制
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

或者,如果你想要一个更面向对象的方法,你应该添加你自己的JsonObject实现(这也是JSON-P规范)。您的实现将接受ctor的初始JsonObject,并实现从中提取和返回data JsonArray的逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50707410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档