1
public class HttpException extends IOException {
public int code;
@JSONField(name = "message")
public String detail;
public HttpException() {
}
}
使用JSON.parseObject()方法解析{"code":500, "message":"sfsffdff"}时无法正确解析。
public class HttpException extends IOException {
public int code;
@JSONField(name = "message")
public String detail;
public HttpException() {
}
}
使用JSON.parseObject()方法解析{"code":500, "message":"sfsffdff"}时无法正确解析。
我使用1.2.35最新版本做了实验。 调用方式为:JSON.parseObject("{\"code\":500, \"message\":\"sfsffdff\"}", HttpException.class) 1.如果调用类跟HttpException类是不是内部类的关系,则解析正确。 2.如果HttpException是调用类的静态内部类,则解析正确。 3.如果HttpException是调用类的非静态内部类,则解析失败,抛出异常
Can not set int field com.meituan.test.TestJSON$HttpException.code to java.lang.Exception
原因是HttpException类继承自Exception,最后会通过ThrowableDeserializer进行反序列化,由于内部类的关系,会直接变为初始化Exception对象,因此报错。
我用的是1.1.56.android版本,HttpException不是调用类的内部类,
我测试使用的不是android版, 还是等高手来解答吧
谢谢啦,已经很厉害啦