【问题标题】:Combine 2 JSON Objects Without Array组合 2 个没有数组的 JSON 对象
【发布时间】:2017-04-14 09:43:50
【问题描述】:

我希望得到如下的 JSON 输出,这是我认为不使用数组的两个对象的组合。如何获得以下输出?

{
    "AppData": {
        "status": "****",
        "message": [
            ""
        ]
    },
    "Data": {
        "token": "****"
    }
}

我尝试了数组方式,如果我去掉“[”和“]”,那么它将变成无效的 JSON。

我的代码如下

public Response getSAppData(int id, String email, String password){
    Map<String, AppData> AppDataHM = new HashMap<String, AppData>(); 
    Map<String, Data> DataHM1 = new HashMap<String, Data>();

    Data data = DataHM.get(new AppDataRequest (id, email, password));
    List<String> message = new ArrayList<>();

    message.add("");
    AppDataHM.put("AppData", new AppData("success", message));
    DataHM1.put("Data", data);
    String AppDataJO = new Gson().toJson(AppDataHM);
    String DataJO = new Gson().toJson(DataHM1);
    String ADJODJOA = "["+AppDataJO+","+DataJO+"]"; 
    return Response.status(200).entity(ADJODJOA).build();
}

我的代码输出如下

[
  {
    "AppData": {
      "status": "success",
      "message": [
        ""
      ]
    }
  },
  {
    "Data": {
      "token": "token1"
    }
  }
]

提前感谢您的任何回复和回答。

【问题讨论】:

    标签: java arrays json gson


    【解决方案1】:

    全部。我通过首先将两个 HashMap 合并为一个然后仅将其转换为对象来找到解决方案。 下面是我的代码。

    Map<String, AppData> AppDataHM = new HashMap<String, AppData>(); 
    Map<String, Data> DataHM1 = new HashMap<String, Data>();
    
    Map ADHMDHM = new HashMap<>();
    
    Data data = DataHM.get(new AppDataRequest (id, email, password));
    List<String> message = new ArrayList<>();
    
    message.add("");
    AppDataHM.put("AppData", new AppData("success", message));
    DataHM1.put("Data", data);
    ADHMDHM.putAll(AppDataHM);
    ADHMDHM.putAll(DataHM1);
    String ADHMDHM1 = new Gson().toJson(ADHMDHM);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 2013-05-15
      • 1970-01-01
      相关资源
      最近更新 更多