2011-03-21 19 views
8

ile düz dizgeye dönüştürün Bir json nesnesini bir java fasulyesine dönüştürmeye çalışıyorum. Karşılaştığım ana sorun, potansiyel bir doğru json nesnesini içermesine rağmen, json dizesinin object alanını düz bir dize olarak işlemek istemektir. json yapısı şu şekildedir:json alanını gson

{ 
    "type":"user", 
    "object":{ 
     "id":"1", 
     ...} 
} 

Nasıl bir nesneye serisi almaz böylece object değerini görmezden GSON söyleyebilir? Ben sadecealanından bir tür aldım, bunun için uygun bir serpiştirme atmak için benim fasulye bir String alanı ile eşlenmiş olması istiyorum.

+0

Bu cevabı izleyerek nesneyi kısmen kaldırmayı başardım: http://stackoverflow.com/questions/3769473/what-is-the-easiest-way-to-parse-json-using-gson-when-the -element-to-parse-is-an/4455636 # 4455636 – mox601

cevap

1

Sorununuzun çözülüp çözülmediğini bilmiyorum. Ben de benzer bir soruya koştu ve burada çözdüm nasıl olduğunu: **

JsonDeserializer Eğer bu serisini adaptörü kendi yapmanızı sağlar:

class JavaBeanDeserializer implements JsonDeserializer<JavaBeanObject>() { 
    public JavaBeanObject fromJson(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { 
    // return JavaBeanObject built using your logic. 
} 

Sen JavaBeanDeserializer kayıt ettik GSON nesnesine bunu oluştururken:

Gson gson = new GsonBuilder().registerTypeAdapter(JavaBeanObject.class, new JavaBeanDeserializer()).create(); 
+0

çözümünüzü denemedi, ancak bunu önceki yorumdaki bağlantıyla çözdü – mox601

10

Sadece

JSONObject nesnesi Çeşidi olarak ilan
class ExampleJsonModel { 
    @SerializedName("type") 
    public String type; 

    @SerializedName("object") 
    public JsonObject object; 
}