fastjson 对象解析失败

pepwfjgg  于 2021-11-27  发布在  Java
关注(0)|答案(4)|浏览(496)

public class HttpException extends IOException {

public int code;

@JSONField(name = "message")
public String detail;

public HttpException() {
}

}

使用JSON.parseObject()方法解析{"code":500, "message":"sfsffdff"}时无法正确解析。

ifmq2ha2

ifmq2ha21#

我使用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对象,因此报错。

jucafojl

jucafojl2#

我用的是1.1.56.android版本,HttpException不是调用类的内部类,

qco9c6ql

qco9c6ql3#

我测试使用的不是android版, 还是等高手来解答吧

ibps3vxo

ibps3vxo4#

谢谢啦,已经很厉害啦

相关问题