2013-02-11 44 views
1

如何解析這個不正確的(我認爲)JSON使用Gson庫。如何使用Gson庫解析不正確的JSON

{ 
    ...... 
     "phones":{ 
      "155193":"5556739386", 
      "155194":"5555301828" 
     } 
    ...... 
    } 

155193155194從服務器的隨機值。

需要使用HashMap或任何想法?

+1

怎麼樣的JSON是「不正確的」? – 2013-02-12 00:30:17

+0

我的情況更好的是:「電話」:[「5556739386」, 「5555301828」] – GeX 2013-02-12 01:27:01

回答

1

你的回答肯定是正確的(不要忘記將其標記爲接受!),但我有兩個音符,我把回答的形式。

首先,如果你也可以用這樣的方式:

public class ServerResponse { 
    ... 
    private Object phones; 
    ... 
    } 

,您將收到一個anycase地圖,當然在這種情況下你需要一個演員。所以你的解決方案更好。但是,如果服務器發送你的手機列表,它會但是工作(當然,你將有一個類轉換異常在你的代碼,而不是一個JSONParsingException

其次,你的JSON是不是無效,如果你看一下this,你會發現這是正確的解析,這裏不起作用的是你不能遵循POJO的方法來解析。一種方式就像你回答,另一種可能是編寫一個適配器,讓你回到一個地圖。所以這不會是什麼大事,讓Gson更好地處理這種情況就像你一樣。

1

對於這種情況,它幫助我:

public class ServerResponse { 
    ... 
    private HashMap<String, String> phones; 
    ... 
    }