2016-06-22 4 views
0

私はアンドロイドスタジオとjsonの新しいです。 私はAndroidスタジオにサーバーからデータを取得し、サーバーにデータを送信するプロジェクトがあります。jsonObjectにオーダーされたデータを入れる方法は?

サーバーにデータを送信する際に問題があります。データはオブジェクト型で、jsonObjectにデータを置くと、データは混在して送信されます。正しいデータ(送信したデータ)を受け取ることはありません。 これは私が、サーバから取得するオブジェクトです:

{ 
    "success": true, 
    "body": { 
     "priority1": { 
     "timeTable": { 
      "fri": false, 
      "time": { 
       "op": true, 
       "cl": false, 
       "fh": null, 
       "fm": null, 
       "th": null, 
       "tm": null 
      }, 
      "mon": true, 
      "sat": true, 
      "sun": false, 
      "thu": false, 
      "tue": true, 
      "wed": true 
     }, 
     "number": "12345612332", 
     "timeOut": "1" 
     }, 
     "priority2": { 
     "timeTable": { 
      "fri": false, 
      "time": { 
       "op": true, 
       "cl": false, 
       "fh": null, 
       "fm": null, 
       "th": null, 
       "tm": null 
      }, 
      "mon": true, 
      "sat": true, 
      "sun": false, 
      "thu": true, 
      "tue": false, 
      "wed": true 
     }, 
     "number": "12345678901", 
     "timeOut": "5" 
     }, 
     "priority3": { 
     "timeTable": { 
      "time": { 
       "op": true, 
       "cl": false, 
       "fh": null, 
       "fm": null, 
       "th": null, 
       "tm": null 
      }, 
      "mon": true, 
      "tue": true, 
      "wed": true, 
      "thu": true, 
      "fri": true, 
      "sat": true, 
      "sun": true 
     }, 
     "number": null, 
     "timeOut": null 
     }, 
     "priority4": { 
     "timeTable": { 
      "time": { 
       "op": true, 
       "cl": false, 
       "fh": null, 
       "fm": null, 
       "th": null, 
       "tm": null 
      }, 
      "mon": true, 
      "tue": true, 
      "wed": true, 
      "thu": true, 
      "fri": true, 
      "sat": true, 
      "sun": true 
     }, 
     "number": null, 
     "timeOut": null 
     }, 
     "priority5": { 
     "timeTable": { 
      "time": { 
       "op": true, 
       "cl": false, 
       "fh": null, 
       "fm": null, 
       "th": null, 
       "tm": null 
      }, 
      "mon": true, 
      "tue": true, 
      "wed": true, 
      "thu": true, 
      "fri": true, 
      "sat": true, 
      "sun": true 
     }, 
     "number": null, 
     "timeOut": null 
     } 
    }, 
    "error": null 
} 

、これは私がサーバーに送信対象である:ここでは

{ 
    "priority5": { 
     "number": null, 
     "timeOut": null, 
     "timeTable": { 
     "fri": true, 
     "mon": true, 
     "sat": true, 
     "sun": true, 
     "thu": true, 
     "time": { 
      "cl": false, 
      "fh": null, 
      "fm": null, 
      "op": true, 
      "th": null, 
      "tm": null 
     }, 
     "tue": true, 
     "wed": true 
     } 
    }, 
    "priority4": { 
     "number": null, 
     "timeOut": null, 
     "timeTable": { 
     "fri": true, 
     "mon": true, 
     "sat": true, 
     "sun": true, 
     "thu": true, 
     "time": { 
      "cl": false, 
      "fh": null, 
      "fm": null, 
      "op": true, 
      "th": null, 
      "tm": null 
     }, 
     "tue": true, 
     "wed": true 
     } 
    }, 
    "priority1": { 
     "number": "12345612332", 
     "timeOut": "1", 
     "timeTable": { 
     "fri": false, 
     "mon": true, 
     "sat": true, 
     "sun": false, 
     "thu": false, 
     "time": { 
      "cl": false, 
      "fh": null, 
      "fm": null, 
      "op": true, 
      "th": null, 
      "tm": null 
     }, 
     "tue": true, 
     "wed": true 
     } 
    }, 
    "priority3": { 
     "number": null, 
     "timeOut": null, 
     "timeTable": { 
     "fri": true, 
     "mon": true, 
     "sat": true, 
     "sun": true, 
     "thu": true, 
     "time": { 
      "cl": false, 
      "fh": null, 
      "fm": null, 
      "op": true, 
      "th": null, 
      "tm": null 
     }, 
     "tue": true, 
     "wed": true 
     } 
    }, 
    "priority2": { 
     "number": "12345678901", 
     "timeOut": "5", 
     "timeTable": { 
     "fri": false, 
     "mon": true, 
     "sat": true, 
     "sun": false, 
     "thu": true, 
     "time": { 
      "cl": false, 
      "fh": "02", 
      "fm": "04", 
      "op": false, 
      "th": "08", 
      "tm": "03" 
     }, 
     "tue": false, 
     "wed": true 
     } 
    } 
} 

は、私がjsonObjectにデータを入れているsetメソッドであります:

プライベートボイドsetExtensionForwardNumber(){

if(priorityOne.isChecked()) { 
     if (validateNumberField(priorityOneNumber)) { 

      priorityResponse.priorityOne.number = priorityOneNumber.getText().toString(); 
      priorityResponse.priorityOne.timeOut = priorityOneTimeOut.getText().toString(); 
      priorityResponse.priorityOne.getTimeTable().mon = priorityOneMon.isChecked(); 
      priorityResponse.priorityOne.getTimeTable().tue = priorityOneTue.isChecked(); 
      priorityResponse.priorityOne.getTimeTable().wed = priorityOneWed.isChecked(); 
      priorityResponse.priorityOne.getTimeTable().thu = priorityOneThur.isChecked(); 
      priorityResponse.priorityOne.getTimeTable().fri = priorityOneFri.isChecked(); 
      priorityResponse.priorityOne.getTimeTable().sat = priorityOneSat.isChecked(); 
      priorityResponse.priorityOne.getTimeTable().sun = priorityOneSun.isChecked(); 
      priorityResponse.priorityOne.getTimeTable().getTime().open = priorityOne.isChecked(); 
      priorityResponse.priorityOne.getTimeTable().getTime().open = priorityOne24h.isChecked(); 
      if (!priorityOne24h.isChecked()) { 
       priorityResponse.priorityOne.getTimeTable().getTime().fromHour = priorityOneFromHours.getSelectedItem().toString(); 
       priorityResponse.priorityOne.getTimeTable().getTime().fromMinute = priorityOneFromMinutes.getSelectedItem().toString(); 
       priorityResponse.priorityOne.getTimeTable().getTime().toHour = priorityOneToHours.getSelectedItem().toString(); 
       priorityResponse.priorityOne.getTimeTable().getTime().toMinute = priorityOneToMinute.getSelectedItem().toString(); 
      } 
     } 
    }else{ 
     priorityOne.setEnabled(false); 
    } 



    if(priorityTwo.isChecked()){ 
     if(validateNumberField(priorityTwoNumber)){ 
      priorityResponse.priorityTwo.number =priorityTwoNumber.getText().toString(); 
      priorityResponse.priorityTwo.timeOut = priorityTwoTimeOut.getText().toString(); 
      priorityResponse.priorityTwo.getTimeTable().mon = priorityTwoMon.isChecked(); 
      priorityResponse.priorityTwo.getTimeTable().tue = priorityTwoTue.isChecked(); 
      priorityResponse.priorityTwo.getTimeTable().wed = priorityTwoWed.isChecked(); 
      priorityResponse.priorityTwo.getTimeTable().thu = priorityTwoThur.isChecked(); 
      priorityResponse.priorityTwo.getTimeTable().fri = priorityTwoFri.isChecked(); 
      priorityResponse.priorityTwo.getTimeTable().sat = priorityTwoSat.isChecked(); 
      priorityResponse.priorityTwo.getTimeTable().sun = priorityTwoSun.isChecked(); 
      priorityResponse.priorityTwo.getTimeTable().getTime().open = priorityTwo.isChecked(); 
      priorityResponse.priorityTwo.getTimeTable().getTime().open = priorityTwo24h.isChecked(); 
      if(!priorityTwo24h.isChecked()){ 
       priorityResponse.priorityTwo.getTimeTable().getTime().fromHour = priorityTwoFromHours.getSelectedItem().toString(); 
       priorityResponse.priorityTwo.getTimeTable().getTime().fromMinute = priorityTwoFromMinutes.getSelectedItem().toString(); 
       priorityResponse.priorityTwo.getTimeTable().getTime().toHour = priorityTwoToHours.getSelectedItem().toString(); 
       priorityResponse.priorityTwo.getTimeTable().getTime().toMinute = priorityTwoToMinute.getSelectedItem().toString(); 

      } 
     } 
    }else{ 
     priorityTwo.setEnabled(false); 
    } 

    if(priorityThree.isChecked()){ 
     if(validateNumberField(priorityThreeNumber)){ 
      priorityResponse.priorityThree.number =priorityTwoNumber.getText().toString(); 
      priorityResponse.priorityThree.timeOut = priorityTwoTimeOut.getText().toString(); 
      priorityResponse.priorityThree.getTimeTable().mon = priorityThreeMon.isChecked(); 
      priorityResponse.priorityThree.getTimeTable().tue = priorityThreeTue.isChecked(); 
      priorityResponse.priorityThree.getTimeTable().wed = priorityThreeWed.isChecked(); 
      priorityResponse.priorityThree.getTimeTable().thu = priorityThreeThur.isChecked(); 
      priorityResponse.priorityThree.getTimeTable().fri = priorityThreeFri.isChecked(); 
      priorityResponse.priorityThree.getTimeTable().sat = priorityThreeSat.isChecked(); 
      priorityResponse.priorityThree.getTimeTable().sun = priorityThreeSun.isChecked(); 
      priorityResponse.priorityThree.getTimeTable().getTime().open = priorityThree.isChecked(); 
      priorityResponse.priorityThree.getTimeTable().getTime().open = priorityThree24h.isChecked(); 
      if(!priorityThree24h.isChecked()){ 
       priorityResponse.priorityThree.getTimeTable().getTime().fromHour = priorityThreeFromHours.getSelectedItem().toString(); 
       priorityResponse.priorityThree.getTimeTable().getTime().fromMinute = priorityThreeFromMinutes.getSelectedItem().toString(); 
       priorityResponse.priorityThree.getTimeTable().getTime().toHour = priorityThreeToHours.getSelectedItem().toString(); 
       priorityResponse.priorityThree.getTimeTable().getTime().toMinute = priorityThreeToMinute.getSelectedItem().toString(); 

      } 
     } 
    }else{ 
     priorityThree.setEnabled(false); 
    } 


    if(priorityFour.isChecked()){ 
     if(validateNumberField(priorityFourNumber)){ 
      priorityResponse.priorityFour.number =priorityFourNumber.getText().toString(); 
      priorityResponse.priorityFour.timeOut = priorityFourTimeOut.getText().toString(); 
      priorityResponse.priorityFour.getTimeTable().mon = priorityFourMon.isChecked(); 
      priorityResponse.priorityFour.getTimeTable().tue = priorityFourTue.isChecked(); 
      priorityResponse.priorityFour.getTimeTable().wed = priorityFourWed.isChecked(); 
      priorityResponse.priorityFour.getTimeTable().thu = priorityFourThur.isChecked(); 
      priorityResponse.priorityFour.getTimeTable().fri = priorityFourFri.isChecked(); 
      priorityResponse.priorityFour.getTimeTable().sat = priorityFourSat.isChecked(); 
      priorityResponse.priorityFour.getTimeTable().sun = priorityFourSun.isChecked(); 
      priorityResponse.priorityFour.getTimeTable().getTime().open = priorityFour.isChecked(); 
      priorityResponse.priorityFour.getTimeTable().getTime().open = priorityFour24h.isChecked(); 
      if(!priorityThree24h.isChecked()){ 
       priorityResponse.priorityFour.getTimeTable().getTime().fromHour = priorityFourFromHours.getSelectedItem().toString(); 
       priorityResponse.priorityFour.getTimeTable().getTime().fromMinute = priorityFourFromMinutes.getSelectedItem().toString(); 
       priorityResponse.priorityFour.getTimeTable().getTime().toHour = priorityFourToHours.getSelectedItem().toString(); 
       priorityResponse.priorityFour.getTimeTable().getTime().toMinute = priorityFourToMinute.getSelectedItem().toString(); 

      } 
     } 
    }else{ 
     priorityFour.setEnabled(false); 
    } 

    if(priorityFive.isChecked()){ 
     if(validateNumberField(priorityFiveNumber)){ 
      priorityResponse.priorityFive.number =priorityFiveNumber.getText().toString(); 
      priorityResponse.priorityFive.timeOut = priorityFiveTimeOut.getText().toString(); 
      priorityResponse.priorityFive.getTimeTable().mon = priorityFiveMon.isChecked(); 
      priorityResponse.priorityFive.getTimeTable().tue = priorityFiveTue.isChecked(); 
      priorityResponse.priorityFive.getTimeTable().wed = priorityFiveWed.isChecked(); 
      priorityResponse.priorityFive.getTimeTable().thu = priorityFiveThur.isChecked(); 
      priorityResponse.priorityFive.getTimeTable().fri = priorityFiveFri.isChecked(); 
      priorityResponse.priorityFive.getTimeTable().sat = priorityFiveSat.isChecked(); 
      priorityResponse.priorityFive.getTimeTable().sun = priorityFiveSun.isChecked(); 
      priorityResponse.priorityFive.getTimeTable().getTime().open = priorityFive.isChecked(); 
      priorityResponse.priorityFive.getTimeTable().getTime().open = priorityFive24h.isChecked(); 
      if(!priorityThree24h.isChecked()){ 
       priorityResponse.priorityFive.getTimeTable().getTime().fromHour = priorityFiveFromHours.getSelectedItem().toString(); 
       priorityResponse.priorityFive.getTimeTable().getTime().fromMinute = priorityFiveFromMinutes.getSelectedItem().toString(); 
       priorityResponse.priorityFive.getTimeTable().getTime().toHour = priorityFiveToHours.getSelectedItem().toString(); 
       priorityResponse.priorityFive.getTimeTable().getTime().toMinute = priorityFiveToMinute.getSelectedItem().toString(); 

      } 
     } 
    }else{ 
     priorityFive.setEnabled(false); 
    } 

    String s = priorityResponse.toJsonObject(); 
    setForwardExternalFragment(s); 
} 

私の問題を解決するのを手伝ってください。ありがとう!

+0

これは読めません。 – slanecek

答えて

1

一般的に、JSONオブジェクトは注文を維持するために設計されていません。キーを使用して値にアクセスする必要があります。この場合、順序は関係ありません。

本当に順序を維持する必要がある場合は、JSON配列を使用できます。

+0

JSON配列の例を手伝ってもらえますか?バックエンドでは、この注文後にチェックが行われるため、サーバーから取得する注文と同じ注文を維持する必要があります。 – ruru

+0

JSONを使用している場合は、注文とは無関係のソリューションに向けて作業する必要があります。この場合にアレイを使用することは意図された使用ではありません。 –

関連する問題