2017-04-14 69 views
1

我希望得到如下的JSON输出,这是两个对象的组合,我认为不使用数组。我怎样才能得到以下输出?组合2个没有阵列的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" 
    } 
    } 
] 

预先感谢任何答复和答复。

回答

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