在Java中反序列化复合对象

时间:2012-09-05 21:23:15

标签: java deserialization

我有一个关于反序列化复合对象的问题。我的对象如下:

public class Outside
{
   private String str1;
   private Inside s;
}

public class Inside
{
   private String str2;
   public Inside(String str2) 
   {
    this.field1 = str2;
   }
}

当我想反序列化对Json的响应时

Outside o = wr.accept(MediaType.APPLICATION_JSON_TYPE).get(Outside .class);

我收到以下异常 .... ClientHandlerException:Java类外部的消息体读取器,Java类型类外部,未找到MIME媒体类型application / json

我不确定我做错了什么。

1 个答案:

答案 0 :(得分:2)

  

java.lang.NoSuchMethodException:.... Inside。()

这是指Inside()形式的构造函数,您没有这个构造函数 - 您只有Inside(String)。序列化需要一个无参数的构造函数,因此它可以轻松地使用反射来实例化您的对象,然后填写字段。

因此,您需要添加一个无参数构造函数。