在将列表转换为json时,必须使用TypeToken
(如Gson doc中所推荐的那样)作为类型 -
new Gson().toJson(dateRange, new TypeToken<List<String>>() {}.getType());
对我而言,下面的代码也在运行 -
new Gson().toJson(dateRange, List.class);
只是想确保代码不会中断。
答案 0 :(得分:2)
根据文档 -
如果您正在序列化/反序列化的对象是
ParameterizedType
(即包含至少一个类型参数并且可以 是一个数组)然后你必须使用toJson(Object, Type)
或fromJson(String, Type)
方法。这是一个序列化和示例 反序列化ParameterizedType
:
Type listType = new TypeToken<List<String>>() {}.getType();
List<String> target = new LinkedList<String>();
target.add("blah");
Gson gson = new Gson();
String json = gson.toJson(target, listType);
List<String> target2 = gson.fromJson(json, listType);
这是特例,在其他情况下,您可以直接使用类类型。 供参考 - http://google.github.io/gson/apidocs/com/google/gson/Gson.html
希望这有帮助