2017-04-27 22 views
2

POSTを使用してWebサービスからJSON出力を取得したいと考えています。私がlocalhost上でプログラムを試してみると、それは出力が自分の必要条件を満たすようにうまくいきますが、Google App Engineにアップロードするときに出力を取得しようとしています。 GAEJSON出力シーケンス

{ 
    "AppData": { 
     "status": "success", 
     "message": [ 
     "" 
     ] 
    }, 
    "Data": { 
     "token": "****" 
    } 
} 

から

{ 
    "Data": { 
    "token": "****" 
    }, 
    "AppData": { 
    "status": "success", 
    "message": [ 
     "" 
    ] 
    } 
} 

出力は、出力を生成するための出力

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

シーケンスがJSONの処理に影響するとは思いません。 –

+0

こんにちは。 @SachinGupta JSONのシーケンスを維持する方法はありますか?シーケンスは本当に私にとって重要です。 –

+0

その答えを確認する –

答えて

4

出力の順序を維持するには、LinkedHashMapを使用する必要があります。 HashMapはキーまたは値の順序を維持しません。しかし、LinkedHashMapは挿入順序を保持します。

コードをLinkedHashMapに変更しようとすると、動作するはずです。

+0

こんにちは。 @SachinGupta。ご回答有難うございます。できます。私は5分で答えを受け入れることができないので、後でそれを受け入れます。 –