组合2个没有数组的JSON对象

时间:2017-04-14 09:43:50

标签: java arrays json gson

我希望获得下面的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();
}

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

1 个答案:

答案 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);