这是我的代码
Gson gson = new Gson();
HashMap<String, String> map = new HashMap<>();
map = gson.fromJson(new FileReader(inputFile), map.getClass());
inputFile
的内容是
{
"key1": "[\"value1\"]",
"key2": "value2"
}
当我在Eclipse中调试期间检查map.get("key2")
的值时,该值实际为(java.util.ArrayList<E>) [value1]
如何让Gson将内容反序列化为
{key1="[value1]", key2=value2}
由于
答案 0 :(得分:1)
我觉得你看到
的HashMap#toString()
输出了
{key1=["value1"], key2=value2}
并且认为
["value1"]
是某种类型的List
,其String
值为"value1"
。
不是。您的String
作为String
字面值将表示为"[\"value1\"]"
。它的值是["value1"]
。这就是显示的内容。
您的JSON键值条目均为string-string
,并且将按此转换。
"key1": "[\"value1\"]",
// ^ indicates a JSON string