2017-04-14 67 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);