关于泛型中包含级联的List转化为json数据的处理
今天,在我想要将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数据的处理相关推荐
- java中map转为json数据_Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回...
Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回html 1.自定义工具类(简单易用)-下面是我写的一个简单的工具类前端 package com.test.util; i ...
- html中根据姓名模糊查询,JavaScript根据Json数据来做的模糊查询功能
fuzzy_Search: function() {//先找到对应的属性,然后才能继续执行 var newJson = this.jsonB.ModuleList;//先确定所有的input标签 va ...
- c json保存整型数组,您如何存储“ int”? NSMutableArray *或NSMutableDictionary *中的值?整数形式的JSON数据的长期问题。...
How do you store "int" values in an NSMutableArray or NSMutableDictionary? Chronic problem ...
- MaxCompute中如何使用OSS外部表读取JSON数据?
一.打开OSS,上传json文件 json文件内容展示: {"id":5644228109524316032,"sourceType":1} {"id ...
- js中如何将object转化为json数据,json数据转js对象
js对象转json数据: JSON.stringify(); json数据转js对象: JSON.parse();
- SQL Server 中的 JSON 数据
下面是 JSON 文本的示例 [{ "name": "John", "skills": ["SQL", "C# ...
- Flink CDC mongoDB 使用及Flink sql解析monggo中复杂嵌套JSON数据实现
需要实时采集MongoDB中的数据,所以考虑使用flink cdc mongodb,在flink cdc2.1版本后也支持了MongoDB的数据采集,是通过oplog. MongoDB中的存储数据的文 ...
- python中如何对复杂的json数据快速查找key对应的value值(使用JsonSearch包)
前言 之前在实际的项目研发中,需要对一些复杂的json数据进行取值操作,由于json数据的层级很深,所以经常取值的代码会变成类似这样: value = data['store']['book'][0] ...
- android给后台传递json,将服务中的JSON数据发送到Android中的UI
要求是:我有一个后台服务,在该服务中,我正在执行REST调用以获取JSON数据.我想将JSON数据发送到UI并更新内容. 我可以使用的一种方法是,将整个JSON字符串存储在SharedPreferen ...
- android libbfaac.so,Android中Json数据读取与创建
一: Json的特性和在数据交互中的地位就不用说了,直接看案例. 首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项 ...
最新文章
- 面部识别技术走到十字路口?
- SpringBoot集成Spring Security —— 第二章自动登录
- Tensorflow源码解析6 -- TensorFlow本地运行时
- 面向对象 - 继承/组合 - 总结
- oracle plsql异常,【Oracle篇】异常处理和PLSQL
- Firefox 用户加载的半数网页启用了 HTTPS
- centos更改默认python_CentOS系统python默认版本由python2改为python3
- Jquery的load加载本地文件出现跨域错误的解决方案
- 多线程与多进程(4)
- css clear属性 的深入了解
- 比赛之前的数据清零操作
- 人工智能可以产生自主意识吗?
- office03-07兼容包
- 生物信息学计算机等级,生物信息学考试题.doc
- 谷粒商城基础篇——Day01
- JAVA导入/导出EXCEL文件,自定义校验,错误回写excel,使用简单快捷
- 商城系统开发,使用微信服务号好?还是小程序?
- 如何推动智慧交通普惠发展 | 工信部印发民用无人机《指导意见》
- 简易的星号密码查看器(对话框版+网页版)
- 【博客635】tcpdump原理与网卡混杂模式
热门文章
- 计算机设置ip后提示未识别网络连接,Win7出现提示“未识别的网络无Internet访问”怎么解决?...
- 这几款超好用的协同办公软件,你都get了吗
- 云计算储存基础(3)
- Java基础-多线程
- python中的“ --snip-- ”是什么
- 数学分析(7): 微分中值定理
- 空城计课件软件测试,空城计课件公开课.ppt
- 中级程序员晋升高级程序员,只差这几个技能
- bc汇编指令用法_BC操作流程
- 怎么修改ftp服务器被动端口,ftp服务器改为被动模式