2017-03-14 13 views
1

itemsが複数のitemオブジェクトを含む配列である以下のJSONドキュメントがあります。各itemオブジェクトには、以下に示すように多くのフィールドがあります。わかりやすくするために、の配列内に1つのitemオブジェクトしか表示していませんが、それ以上の配列を持つことができます。Gsonを使用して配列とオブジェクトを持つ巨大なJSONオブジェクトを解析しますか?

{ 
    "items": [{ 
      "createDate": 1234567890, 
      "title": "some title", 
      "bp": { 
       "currencyId": "USD", 
       "value": 10.0 
      }, 
      "pof": false, 
      "ku": true, 
      "var": { 
       "quant": 10, 
       "tot": 0, 
       "co": 1, 
       "vbp": { 
        "cid": "USD", 
        "val": 10.0 
       }, 
       "id": 5296164, 
       "sel": { 
        "style": "Short", 
        "Size": "L", 
        "Color": "Blue" 
       } 
      }, 
      "flags": { 
       "low": false, 
       "rpl": false, 
       "scmb": false 
      } 
      "shipping": { 
       "shippingType": "sss" 
      }, 
      "seller": { 
       "name": "", 
       "sco": 0, 
       "perc": 0.0, 
       "id": 101215, 
       "brand": true, 
       "prog": "NONE" 
      }, 
      "dur": "DA9", 
      "urls": ["world", "hello"], 
      "itemId": 1234 
     } 
    ], 
    "count": { 
     "ac": 3, 
     "ed": 0 
    } 
} 

Gsonを使用して上記のJSONをPOJOに解析するにはどうすればよいですか? JSONオブジェクトフィールドがたくさんあるので混乱しています。そのため、すべてのものを保持できるクラスを作成する方法を理解できません。

+1

をデシリアライズすることができますか? –

+0

チェックアウトhttp://stackoverflow.com/questions/23070298/get-nested-json-object-with-gson-using-retrofit –

答えて

1

Use JSONschema2Pojo

使用例:

jsonschema2pojo --source ../Items.json --target java-gen -a GSON -T JSON -E 

出力:

Bp.java Count.java Flags.java Item.java Sel.java Seller.java Shipping.java Items.java Var.java Vbp.java 

Seller.java

public class Seller { 

    @SerializedName("name") 
    @Expose 
    private String name; 
    @SerializedName("sco") 
    @Expose 
    private Integer sco; 
    @SerializedName("perc") 
    @Expose 
    private Double perc; 
    @SerializedName("id") 
    @Expose 
    private Integer id; 
    @SerializedName("brand") 
    @Expose 
    private Boolean brand; 
    @SerializedName("prog") 
    @Expose 
    private String prog; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public Integer getSco() { 
     return sco; 
    } 

    public void setSco(Integer sco) { 
     this.sco = sco; 
    } 

    public Double getPerc() { 
     return perc; 
    } 

    public void setPerc(Double perc) { 
     this.perc = perc; 
    } 

    public Integer getId() { 
     return id; 
    } 

    public void setId(Integer id) { 
     this.id = id; 
    } 

    public Boolean getBrand() { 
     return brand; 
    } 

    public void setBrand(Boolean brand) { 
     this.brand = brand; 
    } 

    public String getProg() { 
     return prog; 
    } 

    public void setProg(String prog) { 
     this.prog = prog; 
    } 

    @Override 
    public String toString() { 
     return ToStringBuilder.reflectionToString(this); 
    } 

} 

パッケージにこれらのクラスのすべてを置きます。

items 

次に、あなたがこれまでに試してみました何

String line = "{}" // Read JSON in. 
Gson gson = new GsonBuilder().create(); 
Items items = gson.fromJson(line, Items.class); 
+0

私の 'items'は複数のitemオブジェクトを含む配列ですか?これはまだ動作しますか? – user1234

+0

ええ、あなたのスキーマ/オブジェクト全体をこのツールにフィードする必要があります。 – user3749364

関連する問題