我有一個包含的類型的混合物象在這個簡單的例子反序列化地圖<對象,對象>與GSON
final Map<String, Object> map = new LinkedHashMap<String, Object>();
map.put("a", 1);
map.put("b", "a");
map.put("c", 2);
final Gson gson = new Gson();
final String string = gson.toJson(map);
final Type type = new TypeToken<LinkedHashMap<String, Object>>(){}.getType();
final Map<Object, Object> map2 = gson.fromJson(string, type);
for (final Entry<Object, Object> entry : map2.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
我會得到什麼是純Object
S,NO Integer
S,NO String
秒的地圖。輸出看起來像
a : [email protected]
b : [email protected]
c : [email protected]
我可以修復它嗎?我期望這種簡單的情況下將被默認正確處理。
我知道關於該類型的信息不能總是保留,並且可能1
和"1"
在JSON中的含義完全相同。但是,返回簡單的無內容對象對我來說毫無意義。
更新:序列化版本(即上述string
)看起來很好:
{"a":1,"b":"a","c":2}
你可以看看最後的字符串字符串?我相信這有助於理解這個問題。 – 2011-03-22 20:17:22
我剛剛也遇到了這個......這就是爲什麼我使用我的JSONer ...它可能會慢一點,但它比Gson更通用:http://nu-art-infrastructure.blogspot.co .il/2013/03/jsoner.html – TacB0sS 2013-09-15 08:32:14
@ TacB0sS:我已經遵循了「清晰和靜態的數據結構」建議。但是,讓Gson處理這個應該是非常簡單的。你是否在意提出問題? – maaartinus 2013-09-15 14:52:14