2013-12-23 191 views
0

我正在使用quick-Json序列化我的程序中的HashMap(String,String []),但我在解序列化對象時遇到了麻煩。我使用此代碼來序列化地圖quick-json反序列化投射問題

JsonGeneratorFactory generatorFactory = JsonGeneratorFactory.getInstance(); 
    JSONGenerator generator = generatorFactory.newJsonGenerator(); 
    String json = generator.generateJson(allCodes); 

其中所有代碼都是HashMap(String,String [])。這種形式定義

[{"key1":["value1","value2"]}] 

下面是我用反序列化對象

JsonParserFactory parseFactory=JsonParserFactory.getInstance(); 
    JSONParser parser = parseFactory.newJsonParser(); 
    output = parser.parseJson(inputString); 

輸出的形式爲

{root=[{"key1":["value1","value2"]}]} 

我的目標是投上述作爲一個HashMap的代碼(String,String [])。增加的根參數使得這很難。有沒有辦法返回到所需的HashMap?

+0

你可以調用output.get(「root」)。get(0)? – Bill

+0

我可以調用output.get(「root」),但它只是返回一個對象,所以除非我輸出輸出,否則我不能再繼續。 – eBehbahani

回答

1

嘗試:

HashMap outputHashMap = (HashMap) (((ArrayList) ((HashMap) parser.parseJson(json)).get("root")).get(0)); 

有可能是一個更優雅的方式,但是這是我能想到的,現在是最好的。

+0

我想避免過度投射,但這種方式應該工作。我決定用(de)序列化使用base64的文件。 – eBehbahani

0

而不是parser.parseJson(inputString)使用parser.parse(inputString)。 這會給你你正在尋找的格式。

+0

我得到的唯一選擇是parser.parseJson(...)。沒有parser.parse(...) – eBehbahani