2014-12-13 52 views
-1

我已經有一些API並且不能將任何參數和對象名稱更改爲。意外的Gson對象名稱

其中之一是:

{ 
    "version":"1.0", 
    "error_code":"0", 
    "error_message":"OK", 
    "session_id":"2f0513adszdab61a4748553c62019a", 
    "expire":"2014-12-13 17:38:13", 
    "currencyData":{ 
     "rate":"1", 
     "position":"1", 
     "ch":"dollar" 
    }, 
    "data":{ 
     "user_id":129733, 
     "account_type":0 
    }, 
    "new":{ 
     "messages_count":0, 
     "purchases_count":0, 
     "sales_count":0, 
     "offers_count":0, 
     "orders_count":0, 
     "cart_count":9 
    } 
} 

在這種性反應,我有對象 「currencyData」, 「數據」 和 「新」。 現在我在反序列化後遇到了這個名字的問題,它們是空的。 我獲得此recult代碼:

ApiResponse<UserData> response = new Gson().fromJson(json, UserData.class); 

和名稱的目標對象是:

private CurrencyData currencyData; 
private UserData data; 
private New newz; 

有人能告訴我怎樣可以反序列化對象這個?

+0

在哪裏這些領域申報? – 2014-12-13 13:26:30

+0

你確定你的代碼編譯了嗎?告訴我們'ApiResponse'和'UserData'。 – 2014-12-13 13:29:28

+0

@SotiriosDelimanolis這些字段在UserData.class中聲明爲對象。這個對象對於任何String和int值都有getter和setter。 – ironz 2014-12-13 13:30:18

回答

1

試試這個

private CurrencyData currencyData; 
private UserData data; 
@SerializedName("new") 
private New newz; 
+0

所以.. NPE花花公子:( – ironz 2014-12-13 13:39:30

+0

你可以分享你的模型結構和ApiResponse類 – 2014-12-13 13:40:39

+0

它是響應偵聽器接口僅發送通用類公共類ApiResponse { 私人T個數據。 公共牛逼的getData(){ 回報數據; } 公共無效使用setData(T數據){ this.data =數據; }} 什麼 – ironz 2014-12-13 13:45:41