Java 转换列表<;MyDTO>;列出<;地图<;字符串,字符串>&燃气轮机;使用Gson

Java 转换列表<;MyDTO>;列出<;地图<;字符串,字符串>&燃气轮机;使用Gson,java,gson,Java,Gson,我的数据如下: public class MyDTO { private String MEValueName; private String MyId; // getters and setters } Gson gson = new Gson(); List<MyDTO> list = new ArrayList<MyDTO>(); MyDTO dt

我的数据如下:

     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);
公共类MyDTO{
私有字符串MEValueName;
私有字符串MyId;
//接球手和接球手
}
Gson Gson=新的Gson();
列表=新的ArrayList();
MyDTO dto=新的MyDTO();
dto.setMEValueName(“raghu”);
dto.setMyId(“qwer”);
MyDTO dto1=新的MyDTO();
dto1.setMEValueName(“raghuveer”);
dto1.setMyId(“qwer1”);
列表。添加(dto);
列表。添加(dto1);
字符串json=gson.toJson(列表);
System.out.println(json);
//下面这条线是失败的
List list1=gson.fromJson(json,new-TypeToken(){}.getType());
System.out.println(列表1);
当我运行此命令时,会出现以下错误:

java.lang.IllegalStateException:应为字符串,但在第1行第11列路径$[0]处为BEGIN\u对象。


我还想使用泛型类型,这样我就可以使用其他DTO来转换为映射列表。请提出建议。

我发现两个迫在眉睫的问题。。。 json字符串是List类型的对象。 gson.fromJson必须具有相同对象类型的TypeToken。 即使fromJson有效,也不能将List分配给List类型的List

编辑(通过内存执行此操作,因此可能需要一些微调才能编译):

List list1=新列表();
Map Map=newhashmap();
列表1.添加(地图);
add(“some key”,json);

我遗漏了什么?这只是一个简单的问题。你能为MyDTO提供代码吗?地图内容将是什么?你的代码对我很有用。结果是
[{“MEValueName”:“raghu”,“MyId”:“qwer”},{“MEValueName”:“raghuveer”,“MyId”:“qwer1”}]
[{MEValueName=raghu,MyId=qwer},{MEValueName=raghuveer,MyId=qwer1}]
。这是否意味着
Gson
没有解决我的问题的方法?我遗漏了什么吗?Gson只是通过一个json字符串来回转换对象。这取决于你需要映射做什么?它是,您希望DTO在映射中表示为json字符串吗?是的,从列表到列表
List<Map<String, String>> list1 = new List();
Map<String,String> map = new HashMap<>();
list1.add(map);
map.add("some key",json);