我希望使用POST从Web服务获取JSON输出。当我在localhost上尝试该程序时,它可以正常工作,因为输出符合我的要求,但是当我上传到Google App Engine时,我尝试获取输出并且序列是反向的。
{
"Data": {
"token": "****"
},
"AppData": {
"status": "success",
"message": [
""
]
}
}
GAE的输出
{
"AppData": {
"status": "success",
"message": [
""
]
},
"Data": {
"token": "****"
}
}
预期产出
public Response getSAppData(int id, String email, String password){
Map<String, AppData> AppDataHM = new HashMap<>();
Map<String, Data> DataHM1 = new HashMap<>();
Map<String, List<String>> DataHM2 = new HashMap<>();
HashMap<Object, Object> ADHMDHM = new HashMap<>();
List<String> message = new ArrayList<>();
Data data = DataHM.get(new AppDataRequest (id, email, password));
List<String> data2 = new ArrayList<>();
if(data != null){
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);
return Response.status(200).entity(ADHMDHM1).build();
}
else{
message.add("Your login information is invalid. Please try with the correct information");
AppDataHM.put("AppData", new AppData("error", message));
DataHM2.put("Data", data2);
ADHMDHM.putAll(AppDataHM);
ADHMDHM.putAll(DataHM2);
String ADHMDHM2 = new Gson().toJson(ADHMDHM);
return Response.status(200).entity(ADHMDHM2).build();
}
}
生成输出的代码。
提前感谢每个有助于指出错误的用户。
答案 0 :(得分:4)
为了保持输出顺序,您应该使用LinkedHashMap
。因为HashMap
不维护键或值的排序。但LinkedHashMap
会保留广告订单。
尝试将代码更改为LinkedHashMap
,然后它应该有效。