我有一个关于反序列化复合对象的问题。我的对象如下:
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
我不确定我做错了什么。
答案 0 :(得分:2)
java.lang.NoSuchMethodException:.... Inside。()
这是指Inside()
形式的构造函数,您没有这个构造函数 - 您只有Inside(String)
。序列化需要一个无参数的构造函数,因此它可以轻松地使用反射来实例化您的对象,然后填写字段。
因此,您需要添加一个无参数构造函数。