我希望获得如下 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"
}
}
]
预先感谢您的回复和解答。
最佳答案
全部。我找到了一种解决方案,首先将两个 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);
关于java - 组合 2 个 JSON 对象(无需数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43409088/