Java JSON输出序列

Java JSON输出序列,java,json,google-app-engine,jakarta-ee,jersey,Java,Json,Google App Engine,Jakarta Ee,Jersey,我希望使用POST从web服务获取JSON输出。当我在localhost上尝试该程序时,它运行良好,输出满足我的要求,但当我上传到Google App Engine时,我尝试获取输出,顺序相反 { "Data": { "token": "****" }, "AppData": { "status": "success", "message": [ "" ] } } GAE的输出 { "AppData": { "

我希望使用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();
    }   
}
public Response getSAppData(int-id、字符串电子邮件、字符串密码){
Map AppDataHM=新HashMap();
Map DataHM1=新的HashMap();
Map DataHM2=新的HashMap();
HashMap ADHMDHM=新HashMap();
列表消息=新建ArrayList();
Data Data=DataHM.get(新的AppDataRequest(id、电子邮件、密码));
List data2=新的ArrayList();
如果(数据!=null){
消息。添加(“”);
AppDataHM.put(“AppData”,新AppData(“success”,message));
DataHM1.put(“数据”,数据);
ADHMDHM.putAll(AppDataHM);
ADHMDHM.putAll(数据HM1);
字符串ADHMDHM1=new Gson().toJson(ADHMDHM);
返回Response.status(200).entity(ADHMDHM1.build();
}
否则{
message.add(“您的登录信息无效,请使用正确的信息重试”);
AppDataHM.put(“AppData”,新的AppData(“错误”,消息));
DataHM2.put(“数据”,data2);
ADHMDHM.putAll(AppDataHM);
ADHMDHM.putAll(DataHM2);
字符串ADHMDHM2=new Gson().toJson(ADHMDHM);
返回Response.status(200).entity(ADHMDHM2.build();
}   
}
用于生成输出的代码


提前感谢每一位帮助指出错误的用户。

为了保持输出顺序,您应该使用
LinkedHashMap
。as
HashMap
不维护键或值的顺序。但是
LinkedHashMap
保留插入顺序


尝试将您的代码更改为
LinkedHashMap
,然后它应该可以工作。

我认为序列不会影响JSON.Hi的处理@SachinGupta有没有办法维护JSON的序列?因为序列对我来说非常重要。请查看答案部分,谢谢@SachinGuptaHi@萨钦古普塔。谢谢你的回答。它起作用了。因为我不能在5分钟内接受答案,我会在以后接受。