【发布时间】:2017-06-08 08:04:50
【问题描述】:
我的 DTO 如下:
public class MyDTO {
private String MEValueName;
private String MyId;
// getters and setters
}
Gson gson = new Gson();
List<MyDTO> list = new ArrayList<MyDTO>();
MyDTO dto = new MyDTO();
dto.setMEValueName("raghu");
dto.setMyId("qwer");
MyDTO dto1 = new MyDTO();
dto1.setMEValueName("raghuveer");
dto1.setMyId("qwer1");
list.add(dto);
list.add(dto1);
String json = gson.toJson(list);
System.out.println(json);
// below line is failing
List<Map<String, String>> list1 = gson.fromJson(json, new TypeToken<List<Map<String, String>>>(){}.getType());
System.out.println(list1);
当我运行它时,我得到以下错误:
java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 11 path $[0].
我还想使用泛型类型,以便我可以使用其他 DTO 也转换为地图列表。请建议。
【问题讨论】:
-
我错过了什么问题有什么问题?
-
这只是一个普通的 POJO
-
能否提供 MyDTO 的代码?
-
地图内容是什么?
-
你的代码很适合我。结果是
[{"MEValueName":"raghu","MyId":"qwer"},{"MEValueName":"raghuveer","MyId":"qwer1"}]和[{MEValueName=raghu, MyId=qwer}, {MEValueName=raghuveer, MyId=qwer1}]。