2012-11-13 21 views
2

我在我的Android應用程序中使用以下庫 - >Google/Gson. 我無法弄清楚如何將以下json字符串表示爲適當的類以將其抽象出來。如何在Android中表示隨機json對象

"random_chunks": [ 
    { 
     "2013-01-01T10:00:00+00:00": { 
      "available": 61, 
      "in_inventory": 61, 
      "in_service": 61, 
      "percent_in_inventory_available": 100, 
      "percent_in_service_available": 100 
     } 
    }, 

基本上我們的陣列命名爲 「random_chunks」,其包含具有動態名稱的對象 「2013-01-01T10:00:00 + 00:00」。

這是我的想法是:

public class RandomChunks { 
    @SerializedName("random_chunks") 
    private foo[] chunks; 

    public class foo extends Object { 
     // Here is where I get stuck 
} 

如何定位這個隨機的名字嗎?我不能說@SerializedName(「一些隨機字符串」)。思考?

+0

2個問題:你能改變你得到的json嗎?你需要使用json嗎?如果你只是使用內置的json庫手動完成的話,這很容易工作。 – toadzky

+0

不幸的是,我不能改變我得到的JSON,是的,我必須使用JSON。這是一個軌道服務器,我們不得不使用REST服務 –

+0

我的錯誤。我打算問你需要使用GSON。我更喜歡使用內置的JSONObject/JSONArray。 – toadzky

回答

0

你的結構是有點怪異,冷凝:

"random_chunks": [ 
{ 
    "2013-01-01T10:00:00+00:00": { } 
} , 
.... ] 

這似乎對我來說,更自然的方式來表達,這是直接使用字段:

"random_chunks": { 
    "2013-01-01T10:00:00+00:00": { }, 
    "2012-01-01T10:00:00+00:00": { }, 
    ... 
} 

的JSON以上一個地圖,也就是randomChunks = Map<String, Stuff>

就你而言,既然你不能改變格式,我相信它可能(但不是很乾淨)把它表示爲一張地圖數組:

private Map<String, Stuff>[] weirdObjects; 

在現實中,這些地圖會很無聊,並有一個關鍵,你要尋找的一個領域。這不是表示它的最有效的方式,但它看起來就是你所得到的。

注:我不是熟悉GSON,所以我不確定它是否可以處理。傑克遜可以。