今天,在我想要将List<User>转换为json数据返回时与遇到了两个问题:

net.sf.json.JSONException: java.lang.reflect.InvocationTargetException

这个异常首先是因为User类中有Date类型的数据,在JSONArray.fromObject(list)时会出现这个错误,所以解决方法有两种:

1. 修改实体类Date类型的get方法(不过,不建议直接修改实体类的get方法):

    public String getUserBirthday() {return new Date(userBirthday.getTime());}

不过这个转换成json数据后,样子是这样的:

显然不是我所想要的,所以加一个工具类,格式化日期:

package com.utils;import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;public class JsonDateValueProcessor implements JsonValueProcessor {private String datePattern = "yyyy-MM-dd HH:mm:ss";public JsonDateValueProcessor() {super();}public JsonDateValueProcessor(String format) {super();this.datePattern = format;}public Object processArrayValue(Object value, JsonConfig jsonConfig) {return process(value);}public Object processObjectValue(String key, Object value,JsonConfig jsonConfig) {return process(value);}private Object process(Object value) {try {if (value instanceof Date) {SimpleDateFormat sdf = new SimpleDateFormat(datePattern,Locale.UK);return sdf.format((Date) value);}return value == null ? "" : value.toString();} catch (Exception e) {return "";}}public String getDatePattern() {return datePattern;}public void setDatePattern(String pDatePattern) {datePattern = pDatePattern;}
}

然后在Action中添加:

JsonConfig config = new JsonConfig();
JsonDateValueProcessor jsonValueProcessor = new JsonDateValueProcessor();
config.registerJsonValueProcessor(Date.class, jsonValueProcessor); // 把日期格式化了
config.setExcludes(new String[] {"uploadSet","user_barrageSet","user_likeSet","user_favSet"}); //忽略集合
JSONArray userlist = JSONArray.fromObject(list, config);

得到的效果:

2. 把这个Date类型的数据,不使用Date类型而使用String类型。

    private String userBirthday;

另外一个问题则是:

net.sf.json.JSONException object “net.sf.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role

问题原因是因为泛型User中有着HashSet级联的原因,所以需要忽略掉这个HashSet

JsonConfig config = new JsonConfig();
config.setExcludes(new String[] {"uploadSet","user_barrageSet"});
JSONArray userlist = JSONArray.fromObject(list, config);

关于泛型中包含级联的List转化为json数据的处理相关推荐

  1. java中map转为json数据_Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回...

    Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回html 1.自定义工具类(简单易用)-下面是我写的一个简单的工具类前端 package com.test.util; i ...

  2. html中根据姓名模糊查询,JavaScript根据Json数据来做的模糊查询功能

    fuzzy_Search: function() {//先找到对应的属性,然后才能继续执行 var newJson = this.jsonB.ModuleList;//先确定所有的input标签 va ...

  3. c json保存整型数组,您如何存储“ int”? NSMutableArray *或NSMutableDictionary *中的值?整数形式的JSON数据的长期问题。...

    How do you store "int" values in an NSMutableArray or NSMutableDictionary? Chronic problem ...

  4. MaxCompute中如何使用OSS外部表读取JSON数据?

    一.打开OSS,上传json文件 json文件内容展示: {"id":5644228109524316032,"sourceType":1} {"id ...

  5. js中如何将object转化为json数据,json数据转js对象

    js对象转json数据:  JSON.stringify(); json数据转js对象:  JSON.parse();

  6. SQL Server 中的 JSON 数据

    下面是 JSON 文本的示例 [{ "name": "John", "skills": ["SQL", "C# ...

  7. Flink CDC mongoDB 使用及Flink sql解析monggo中复杂嵌套JSON数据实现

    需要实时采集MongoDB中的数据,所以考虑使用flink cdc mongodb,在flink cdc2.1版本后也支持了MongoDB的数据采集,是通过oplog. MongoDB中的存储数据的文 ...

  8. python中如何对复杂的json数据快速查找key对应的value值(使用JsonSearch包)

    前言 之前在实际的项目研发中,需要对一些复杂的json数据进行取值操作,由于json数据的层级很深,所以经常取值的代码会变成类似这样: value = data['store']['book'][0] ...

  9. android给后台传递json,将服务中的JSON数据发送到Android中的UI

    要求是:我有一个后台服务,在该服务中,我正在执行REST调用以获取JSON数据.我想将JSON数据发送到UI并更新内容. 我可以使用的一种方法是,将整个JSON字符串存储在SharedPreferen ...

  10. android libbfaac.so,Android中Json数据读取与创建

    一:  Json的特性和在数据交互中的地位就不用说了,直接看案例. 首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项 ...

最新文章

  1. 面部识别技术走到十字路口?
  2. SpringBoot集成Spring Security —— 第二章自动登录
  3. Tensorflow源码解析6 -- TensorFlow本地运行时
  4. 面向对象 - 继承/组合 - 总结
  5. oracle plsql异常,【Oracle篇】异常处理和PLSQL
  6. Firefox 用户加载的半数网页启用了 HTTPS
  7. centos更改默认python_CentOS系统python默认版本由python2改为python3
  8. Jquery的load加载本地文件出现跨域错误的解决方案
  9. 多线程与多进程(4)
  10. css clear属性 的深入了解
  11. 比赛之前的数据清零操作
  12. 人工智能可以产生自主意识吗?
  13. office03-07兼容包
  14. 生物信息学计算机等级,生物信息学考试题.doc
  15. 谷粒商城基础篇——Day01
  16. JAVA导入/导出EXCEL文件,自定义校验,错误回写excel,使用简单快捷
  17. 商城系统开发,使用微信服务号好?还是小程序?
  18. 如何推动智慧交通普惠发展 | 工信部印发民用无人机《指导意见》
  19. 简易的星号密码查看器(对话框版+网页版)
  20. 【博客635】tcpdump原理与网卡混杂模式

热门文章

  1. 计算机设置ip后提示未识别网络连接,Win7出现提示“未识别的网络无Internet访问”怎么解决?...
  2. 这几款超好用的协同办公软件,你都get了吗
  3. 云计算储存基础(3)
  4. Java基础-多线程
  5. python中的“ --snip-- ”是什么
  6. 数学分析(7): 微分中值定理
  7. 空城计课件软件测试,空城计课件公开课.ppt
  8. 中级程序员晋升高级程序员,只差这几个技能
  9. bc汇编指令用法_BC操作流程
  10. 怎么修改ftp服务器被动端口,ftp服务器改为被动模式