2016-12-15 2 views
1

thisガイドの後にretrofit 2.0を使用してJSONオブジェクトを解析しようとしていますが、動作しません。 JSON形式の違いが原因だと思います。ここretrofit2.0を使用したJSONオブジェクトの解析

フォーマットとネストされたJSONオブジェクトである:ここ

{ 
    "SearchService": { 
     "list_total_count": 531, 
     "RESULT": { 
      "CODE": "INFO-001", 
      "MESSAGE": "SUCCESS" 
     }, 
     "row": [{ 
      "ID": "1983", 
      "NAME": "SAN", 
      "NUM": "38", 
     }, { 
      "ID": "1984", 
      "NAME": "DU", 
      "NUM": "27", 
     }] 
    } 
} 

はSerializedNameを使用してクラスコードである:

RowList.java

public class RowList { 
    @SerializedName("row") 
    @Expose 
    private ArrayList<Row> rows= new ArrayList<>(); 

    public ArrayList<Row> getRows() { 
     return rows; 
    } 

    public void setRows(ArrayList<Row> rows) { 
     this.rows= rows; 
    } 
} 

Row.java

public class Row{ 

    @SerializedName("ID") 
    @Expose 
    private String id; 

    @SerializedName("NAME") 
    @Expose 
    private String name; 

    @SerializedName("NUM") 
    @Expose 
    private String num; 

    /*getter setter*/ 

} 
+0

レトロフィットを使用します。 Gsonはそうです。あなたはこのサイトを使って良いスタートを得ることができます。 http://www.jsonschema2pojo.org/ –

+1

注:「NUM」:「38」、「< - このコンマはこの無効なJSONを作成します –

+0

私はcom.squareup.retrofit2を使用しています:converter-gson:2.0.2 library –

答えて

1

読み取りそのガイド。

Modelクラスを作成するには、2つの方法があります。最初の方法はマニュアルアプローチです。これは、Gsonライブラリの使用方法を学ばなければならないことを意味します。第2のアプローチは、あなたはまた、JSONの出力をキャプチャし、jsonschema2pojo

あなたが1つのアプローチを試みたしましたが、上で読んで試していない(まだ?)しているように見えるを使用して必要なJavaクラスを自動生成することができますですGsonのドキュメント


いいえ、あなたはです。それは"row": [...]内のオブジェクトをカバーして、あなたはまた、次のためのオブジェクトが必要になります。

  • "SearchService": {}
  • "RESULT": {}

私はRowListクラスが必要だとは思いません。 List<Row>は問題ありません。そして

例えば

、(簡潔にするために除去@Expose

class Result { 
    @SerializedName("CODE") 
    String code; 
    @SerializedName("MESSAGE") 
    String message; 
} 

class SearchService { 
    @SerializedName("list_total_count") 
    long count; 
    @SerializedName("RESULT") 
    Result result; 
    @SerializedName("row") 
    private ArrayList<Row> rows= new ArrayList<>(); 
} 

、レトロフィットは、JSONを解析しないCall<SearchService>

+0

私に手伝ってくれてありがとう! –

関連する問題