Ich weiß, dass diese Frage ziemlich oft aufgeworfen wurde, aber bis jetzt fand ich keine Antwort ...Android - Wie kann ich auf verschachtelte Objekte zugreifen?
Ich versuche Android mit GSON zu verwenden. Ich möchte eine JSON-Zeichenfolge verwenden, um eine Gridview zu füllen, aber ich weiß nicht, wie auf die verschachtelten Objekte zuzugreifen.
Die JSON-Datei:
[{'ProductCategories':[
{
'name':'Cat1', 'Product Series':[
{
'name':'ProdSeries1', 'Description':'Lorem Ipsum Bla Bla','Products':[
{
'name':'Product1','key':'value','key':'...'
},
{
'name':'Product2','key':'value','key':'...'
},
]
}
]
},
]
}]
Ich habe 4 Klassen: Products
, ProductSeries
, ProductCatalog
und ProductCategory
.
Beispiel:
public class ProductCatalog {
@SerializedName("ProductCategories")
@Expose
private List<ProductCategory> productCategories = null;
public List<ProductCategory> getProductCategories() {
return productCategories;
}
public void setProductCategories(List<ProductCategory> productCategories) {
this.productCategories = productCategories;
}
}
Danach habe ich die JSON mit Gson analysiert:
Gson gson = new Gson();
Type type = new TypeToken<List<ProductCatalog>>(){}.getType();
List<ProductCatalog> productcatalog = gson.fromJson(JSONstring,type);
Jetzt habe ich eine analysierte Liste der Daten JSON, aber nicht wissen, wie zu arbeiten mit den verschachtelten Objekten wie 'Produkt1'. Ich dachte, die Getter würden helfen, aber ich kann nicht auf getProductCategories()
in meiner Tätigkeit zugreifen. Wie kann ich das machen?
Dank für diese Antwort. Aber meine Klassen sehen genau gleich aus ... Nach 'List productcatalog = gson.fromJson (JSONstring, type);' Ich kann den Getter 'productcatalog.getProductCategories()' –
Mike
nicht verwenden Sie haben die Hauptklasse ('MainClazz ') Name mit' ProductCatalog' und immer noch nicht erhalten –
posten Sie Ihre volle JSON –