Java 当类中有hashMap时,如何使用Gson从json文件中读取对象

Java 当类中有hashMap时,如何使用Gson从json文件中读取对象,java,json,gson,Java,Json,Gson,我有一个类本身就有hashMap,当我用gson库获取它的json文件并想要再次创建它时,我会得到一些错误 我试图用gson库再次创建对象,但失败了 class A{ private HashMap<String, B> hashMap; private int x; private String y; } class B{/*some simple fields*/} public static void main(String[] args){ G

我有一个类本身就有hashMap,当我用gson库获取它的json文件并想要再次创建它时,我会得到一些错误

我试图用gson库再次创建对象,但失败了

class A{
    private HashMap<String, B> hashMap;
    private int x;
    private String y;
}
class B{/*some simple fields*/}
public static void main(String[] args){
    Gson gson = new GsonBuilder().create();
    A a = new A();
    /*setting fileds*/
    String json = gson.toJson(a);
    A newA = gson.fromJson(json, A.class);
}

您需要将传递的对象(这里是A)的字符串表示形式提供给fromJson方法。 请尝试下面的代码

String json = gson.toJson(a);
A newA= gson.fromJson(json, A.class);

我想我找到了解决办法

Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();

这对我很有用。

请发布实际错误我在帖子中添加了错误,第一行说它不是json对象,这正是hashmap中B类的字段
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();