从对象到对象的Gson

时间:2014-10-08 23:48:59

标签: json object gson

我正在尝试使用通用对象执行地图的json转换器。 假设您有以下示例:

class MyClass1
{
    String v1;
    Boolean v2;
}

class MyClass2
{
   Integer v3;
   String v4;
}

class MyContainer
{
     Map<String, Object>lst;

    MyContainer() {
        lst = new HashMap<String, Object>();
    }
}


    public  main() {
        MyContainer  c1, c2;
        Gson g = new Gson();

        c1 = new MyContainer();
        MyClass1 my1 = new MyClass1();
        MyClass2 my2 = new MyClass2();
        my1.v1 = "v1";
        my1.v2 = true;
        my2.v3 = 10;
        my2.v4="v4";

        c1.lst.put("MyClass1", my1);
        c1.lst.put("MyClass2", my2);

        String json = g.toJson(c1);
        c2 = g.fromJson(json, MyContainer.class);

当我使用g.ToJson时,我有良好的json结果但是,当我调用g.fromJson时,它显然不能很好地转换,因为它无法理解必须使用哪个类来映射输入json。 事实上,c2.lst.get(“MyClass1”)不会返回MyClass1的实例,而是返回com.google.gson.internal.StringMap

0 个答案:

没有答案