后台将集合处理成json

自己在做的一个项目遇到一个需求,需要将后台集合处理成json,方便前端处理,json包一般是nef.sj.json.

我直接采用

List<AppFiled> filedList=appactivity.getFiledList();//集合对象
JSONArray datalist = JSONArray.fromObject(filedList);

发现报错了,报错的标题是There is a cycle in the hierarchy!意思是出现死循环,我百度一下出错的原因在于实体类有别的对象,也就是上面的AppFiled内部还有对象,导致出现死循环,查看AppFiled结构发现在继承的DataEntity中包含Page对象,导致出现死循环

public class AppFiled extends DataEntity<AppFiled> implements JSONString  {

    private static final long serialVersionUID = 1L;
    private String filedName;        // 数据库字段名
    private String labelName;        // 显示名
    private String type;        // 文本类型
    private String required;        // 是否必填
    private String sort;        // 排序
    private String activityId;  //活动id
/**
     * 当前实体分页对象
     */
    protected Page<T> page;

    /**
     * 自定义SQL(SQL标识,SQL内容)
     */
    protected Map<String, String> sqlMap;

处理的方法是使用JSONConfig

JsonConfig cfg = new JsonConfig();
cfg.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); //这句话好像会把对象下面所有其他对象过滤掉

还要在实体类AppFiled指定json格式,(实体类要实现JSONString接口)

....//getter和setter
public String toJSONString() {
        return "{filedName:'"+filedName+"',labelName:'"+labelName+"',sort:'"+sort+"'}";
        }

这样就可以将集合转为json方便前端处理了

全部评论

相关推荐

认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
05-29 20:34
门头沟学院 C++
KarlAllen:得做好直接春招的准备。学历差的话,一是面试要求会比学历好的严格不少,二是就算面试通过了也会被排序。总之暑期和秋招对于学历差的就是及其不友好
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 14:35
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务