2016-10-15 9 views
-2

私はあなたの助けが必要です。私はアンドロイドのretrofitで私のアプリで次のjsonを解析したいのですが、問題は私のモデルクラスを作成する方法を知らないことです。 私は、各順位のタイトル、順位、名前、力価、違いとポイントを表示したいandroidでretrofitを使ってjsonを解析する方法

マイJSON:

{ 
"channel": {}, 
"classification": [ 
      { 
      "day": { 
       "id": "3169", 
       "accr": "J8", 
       "type": "0", 
       "title": "8ème journée", 
       "start": "2016-10-08", 
       "finish": "2016-10-09", 
       "poolid": "36", 
       "pool_name": null, 
       "rankings": { 
         "1": { 
          "club": {}, 
          "evolution": {}, 
          "difference": "77" 

          }, 
         "2": { 
          "club": {}, 
          "evolution": {}, 
          "difference": "47" 

          }, 
         "3": { 
          "club": {}, 
          "evolution": {}, 
          "difference": "61" 

          } 
        } 
       } 
      } 
     ] 
} 

私top14

{ 
"channel": {}, 
"classification": [ 
      { 
      "day": { 
       "id": "3169", 
       "accr": "J8", 
       "type": "0", 
       "title": "8ème journée", 
       "start": "2016-10-08", 
       "finish": "2016-10-09", 
       "poolid": "36", 
       "pool_name": null, 
       "rankings": { 
         "1": { 
          "club": {}, 
          "evolution": {}, 
          "difference": "77" 

          }, 
         "2": { 
          "club": {}, 
          "evolution": {}, 
          "difference": "47" 

          }, 
         "3": { 
          "club": {}, 
          "evolution": {}, 
          "difference": "61" 

          } 
        } 
       } 
      } 
     ] 
} 

私top14lst

public class Top14List { 
    @SerializedName("classification") 
    @Expose 
    private ArrayList<Top> classification = new ArrayList<>(); 
    public ArrayList<Top> getClassification() { 
     return classification; 
    } 
    public void setClassification(ArrayList<Top> classification) { 
     this.classification = classification; 
    } 
} 

私のトップ

public class Top { 

    private Map<String, Day> day; 

    public Map<String, Day> getDay() { 
     return day; 
    } 

    public void setDay(Map<String, Day> day) { 
     this.day = day; 
    } 
} 

私の一日

public class Day { 

    private String title; 
    private String start; 
    private String finish; 

    private Map<String, Rankings> rankings; 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

    public String getStart() { 
     return start; 
    } 

    public void setStart(String start) { 
     this.start = start; 
    } 

    public String getFinish() { 
     return finish; 
    } 

    public void setFinish(String finish) { 
     this.finish = finish; 
    } 

    public Map<String, Rankings> getRankings() { 
     return rankings; 
    } 

    public void setRankings(Map<String, Rankings> rankings) { 
     this.rankings = rankings; 
    } 
} 

私のグループ

public class Group1 { 

    private Map<String, Club> club; 
    private String difference; 


    public Map<String, Club> getClub() { 
     return club; 
    } 

    public void setClub(Map<String, Club> club) { 
     this.club = club; 
    } 

    public String getDifference() { 
     return difference; 
    } 

    public void setDifference(String difference) { 
     this.difference = difference; 
    } 


} 

が、私は順位クラスをコーディングする方法がわからない問題「1 「2」「3」

あなたは私を助けてください。

+0

あなたの質問は、私にはほとんど不明です。なぜあなたは "1"、 "2"などをコード化する必要がありますか?あなたはMap を持っています。あなたはGroupを持っています。グループをRankingsに置き換えるだけで、イテレータで値にアクセスできます。また@MohanadMohieがあなたのjsonが間違っていると述べたので、ランキングはオブジェクトではない配列です。それは角括弧を持っている必要があります –

答えて

0

試してみてください。this websiteあなたのJSON文字列を入力すると、あなたのためのJavaクラスが生成されます。

編集:

はウェブサイトで、この修正JSONを試してみて、それがあなたのJavaモデルを生成する必要があります:

{ 
    "channel":{ 
     "title":"jeux" 
    }, 
    "classification":{ 
     "day":{ 
     "id":"3175", 
     "accr":"J5", 
     "type":"0", 
     "title":"xxxxxxxx", 
     "start":"2016-09-17", 
     "finish":"2016-09-18", 
     "poolid":"36", 
     "pool_name":null, 
     "rankings":{ 
      "1":{ 
       "cal":{ 
        "id":"12", 
        "name":"yyyyy", 
        "logo":{ 
        "titre":"sssssssssssssssssssss.png", 
        "date":"2014-12-08 15:23:49", 
        "fichier":"image/png", 
        "url":"http://www.qWSi", 
        "taille":23528, 
        "largeur":116, 
        "hauteur":150 
        } 
       }, 
       "difference":"65", 
       "points":"18" 
      }, 
      "2":{ 
       "cal":{ 
        "id":"41", 
        "name":"aaaaaa", 
        "logo":{ 
        "titre":"fsdfdsfsddf.png", 
        "date":"2016-07-06 15:35:01", 
        "fichier":"image/png", 
        "url":"http://www.M8ZBH1Be", 
        "taille":23475, 
        "largeur":122, 
        "hauteur":150 
        } 
       }, 
       "difference":"65", 
       "points":"18" 
      } 
     } 
     } 
    } 
} 
+0

あなたの提案のためにこんにちは、thnksが助けにはならない、私は私のjsonでループに問題がある、私は "1"、 "2"を宣言する方法を知らない... "13" POJOクラス内の私のPOJOクラスで "ランキング" あなたが私を助けてください、それは本当に重要です、ありがとう – user3451238

+0

このJSONはあまりにも正しくありません。 1 - "ランキング"は配列でなければならず、2 - 各項目の末尾に余分なカンマがあります。今のところ、Rankingsは配列ではなく、内部に13個のオブジェクトがあり、それぞれが数字として名付けられたオブジェクトです。私はまた、この分類から判断すると、「分類」は配列ではなくオブジェクトでなければならないと考えています。私は間違っている可能性があります。私はJSONがどうあるべきかと私の答えを更新しました。私はあなたのデータを完全に理解していないので、データに応じて少し修正したいかもしれませんが、これは正しい軌道に乗ります。 – MohanadMohie

+0

こんにちは 私はjsonのコントロールを持っていません – user3451238

関連する問題