根据组里其他人的分享,这个问题主要是因为Java内部类和嵌套类的实现机制造成的,首先按照Java编程思想的说法,静态的内部类叫做嵌套类,那么两者有什么区别呢?一般的内部类虽然在源代码中没有写,但是编译后会看到里面多了一个指向外部类的引用,如果使用内部类进行json序列化,会因为找不到它的外部类而报异常,而嵌套类因为是静态的,里面没有默认的外部类的引用,即使没有外部类的对象也能够使用,因此在json转换的时候不会报错。
原因:
如果出现类嵌套类的情况,需要将被嵌套的那个类设置为static。
比如:
public class AA {// 相关属性public class BB {//会报错// 相关属性}}
应该改为:
public class AA {// 相关属性public static class BB {// 相关属性}}