我希望获得下面的JSON输出,这是两个对象组合,我认为不使用数组。如何获得以下输出?
<f:view>
<f:metadata>
<ui:include src="/included/shared.xhtml">
<ui:param name="compatibleBean" value="#{particularBean}"/>
</ui:include>
<f:event type="preRenderView" listener="#{particularBean.onlyForMe}"/>
</f:metadata>
</f:view>
我尝试了数组方式,如果我摆脱“[”和“]”那么它将成为无效的JSON。
我的代码如下
{
"AppData": {
"status": "****",
"message": [
""
]
},
"Data": {
"token": "****"
}
}
我的代码输出如下
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();
}
提前感谢您的回复和回答。
答案 0 :(得分: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);