问题1:某些情况下产生非标准json数据 UserGroupModel group = new UserGroupModel(); group.id = 9999; group.users = new ArrayList<>(); group.users2 = new LinkedHashMap<>(); group.users3 = new TreeSet<>();// 如果只有空实例,反序列化时无法解析json 上面的TreeSet为空实例上,序列化出来的数组是:...users3:TreeSet[]。。。进行反序列化时,就会提示解析出错(感觉这个格式也不像json标准,别的框架不好解析...)。
问题2:有些集合进行类型表示(例List),或者表示不合理。 像上面这样:TreeSet[],应该是不合理,应该是非标准json结构;另外,像上面的 users 不会有类型标注,如果 users = new LinkedList() ,就无法还原类型。(类型也不够全,像Queue,就不能玩了...)
问题3:反序列化时,有时不能根据json申明的@type来。 像上面的代码,users2 反序列化回来后变成了:HashMap。这算应该算是有问题。
创意想法:为集合添加友好的数据类型 目前用: {'@type':'x.x.x'} 来为一个对象添加类型申明;;;可以考虑使用:[{'@type':'x.x.x'},[]] 为集合添加类型申明(后面的[]存放真实的数组数据)。
另外,建议如果有@type 申请的,优先用@type类型。
因为正在重构一个自己多年前的json框架(新命名:snack3) 从 fastjson 这儿吸收了不少营养,特来反馈一下