Java对象List<对象>转JSON的异常

@Data
@Accessors(fluent = true)
public class A {
    private String id;
    private List<B> b;
}
@Data
@Accessors(fluent = true)
public class B {
    private String name;
    private String type;
}

 利用fastJson转换一下JSONObject , 用来统一对接数据

JSONObject toJSON = (JSONObject) JSONObject.toJSON(response);

然后发现返回的结果中全都是空的 , 连id都没有转换过来 , 然后就想是不是fastJson对于包含List<对象>转换有限制

于是 , 更换hutool工具类中的JSONUtil来转换 , 依旧无法转换

好吧,,,既然不让我带List , 那我List单独转然后再重新组装

JSONArray toJSON = (JSONArray) JSONArray.toJSON(list);

发现单独转List依旧是无法转换成功 , 可是对象数量是对的 , 可每个对象都是空对象 , 没有内容

然后 , 经过多次尝试 , 数据表自动生成的对象居然可以成功 ,,, 

仔细对比一下 , 发现model类确实不太一样 

// 我自己的
@Accessors(fluent = true)
// 数据库生成的
@Accessors(chain = true)

如果设置 fluent 确实是无法转换 , 换成chain之后 , 无论是 fastJson 还是 hutool都可以成功...

大概率是因为 fluent , 不用set和get前缀关键字 , 在获取对象内容的时候 , 可能无法明确是获取还是设置值 ...

 

posted @ 2023-03-10 18:29  反转苹果派  阅读(280)  评论(0编辑  收藏  举报