JSON 对象net.sf.ezmorph.bean.MorphDynaBean@3d92f1 解决办法

JSON 2016-11-04 15:54:06 23402

net.sf.ezmorph.bean.MorphDynaBean@3d92f1  是  json-lib  中的一个内置对象,当对象缺省的时候,就用这个对象接收。你也可以用它,但是我们往往是需要返回我们自己的实体,或者自己的泛型集合。

net.sf.ezmorph.bean.MorphDynaBean@3d92f1的形成

下面是一个对象实体,然后answers 是一个List<SOAskAnswers>

public class SOAsk implements Serializable{
	private static final long serialVersionUID = 1L;
	
	/**回答集合*/
	private List<SOAskAnswers> answers = new ArrayList<SOAskAnswers>();
	/**分类*/
	private String category;
	/**分类名称*/
	private String categoryName;
	/**创建日期*/
	private String date;
	/**seo - 描述*/
	private String description;
	/**seo - 关键词*/
	private String keywords;
	/**来源 */
	private String from ;
	/**数据ID,url*/
	private String id;
	/**问题描述*/
	private String question;
	/**浏览次数*/
	private long readCount = 0 ;
	/**标题*/
	private String title;
	/**用户ID*/
	private String userId;
	/**用户名称*/
	private String userName;
	/**状态。0:没满意答案,1:有满意答案*/
	private int status = 0;
	
	//TODO getter & setter
	
}

  JSON  反射对象的时候,集合对象就出现了net.sf.ezmorph.bean.MorphDynaBean@3d92f1

//查询返回一个JSON(map),然后反射回来对象,其中有一个属性就是集合。
List<SOAsk> list = new ArrayList<SOAsk>();
for (SearchHit searchHit : hits) {
	Map<String, Object> source = searchHit.getSource();
	JsonConfig config = new JsonConfig();
	//设置对象class
	config.setRootClass(SOAsk.class);
	SOAsk entity = (SOAsk)JSONObject.toBean(JSONObject.fromObject(source) , config);
	list.add(entity);
}

解决办法:

//查询返回一个JSON(map),然后反射回来对象,其中有一个属性就是集合。
List<SOAsk> list = new ArrayList<SOAsk>();
for (SearchHit searchHit : hits) {
	Map<String, Object> source = searchHit.getSource();
	JsonConfig config = new JsonConfig();
	//设置对象class
	config.setRootClass(SOAsk.class);
	
	//键值对的设置对象Class
	Map<String,Class<?>> classMap = new HashMap<String, Class<?>>();
	//设置集合List<SOAskAnswers> answers = new ArrayList<SOAskAnswers>() 的泛型类型为SOAskAnswers
	classMap.put("answers", SOAskAnswers.class);
	//这里可以设置多个,如果当前对象里有很多的话 。。。
	
	
	//设置进去
	config.setClassMap(classMap);
	SOAsk entity = (SOAsk)JSONObject.toBean(JSONObject.fromObject(source) , config);
	list.add(entity);
}

这就OK了。

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/186.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
JSON 对象net.sf.ezmorph.bean.MorphDynaBean@3d92f1 解决办法
QQ互联登录,出现qzuser用户的原因及解决办法
JSON格式讲解,JSON获取对象,JSONObject和JSONArray的操作
Java tojson,Java中json-lib的各种数据转换,及对象转换
SOJSON 阿里云活动达到67人,最终获得5年的1核2GB的ECS服务器使用权益
MySQL数据库存储过程字符集问题,乱码的解决办法
谈谈这次对 SOJSON 的改版
Java API接口返回不是JSON解决方案,SpringMVC返回JSON配置。
Spring 3.x 升级到Spring 4.x 注意事项和步骤,错误解决方法
SOJSON 使用又拍云 CDN 整体架构,解决百度 SEO 方案
最新文章
Flink 在又拍云日志批处理中的实践 8246
个推异常值检测和实战应用-又拍云 1582
TCP 和 UDP协议详细讲解,优缺点分析讲解 7956
URL中乱七八糟的字符讲解,来源以及如何解决 5099
HTTP/3 来了,您真的了解它么? 6149
当我谈 HTTP 时,我谈些什么? 11706
新浪短链(t.cn)最新申请官方API的方法讲解。 72609
QUIC / HTTP3 协议详细分析讲解 10479
恭喜那个做云存储的七牛云完成 F 轮 10 亿人民币的融资,开启新的云旅程 8770
Autojs怎么安全加密?Autojs在线加密工具注意事项。 36577
最热文章
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 652590
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 601980
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 495809
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 490773
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 490398
Elasticsearch教程(四) elasticsearch head 插件安装和使用 449289
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 228670
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 203180
Elasticsearch教程(一),全程直播(小白级别) 191873
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 175328
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...