实体类中含集合或者map的json转换
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了实体类中含集合或者map的json转换,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3271字,纯文字阅读大概需要5分钟。
内容图文
内容转自:http://biyutong.iteye.com/blog/1566708
转此内容仅为下次查找方便。
如果是一般实体:
public class Student implements java.io.Serializable{ /** * @Fields serialVersionUID : TODO */privatestaticfinallong serialVersionUID = -1943961352036134112L; private String sname; private Integer age; public String getSname() { return sname; } publicvoid setSname(String sname) { this.sname = sname; } public Integer getAge() { return age; } publicvoid setAge(Integer age) { this.age = age; } }
由字符串转java bean时可以使用以下方法:
JSONObject jobj = JSONObject.fromObject(str); Student s = (Student) JSONObject.tobean(jobj,Student.class);
是没有问题的,但是如果属性中含有复杂的类型,当其中属性有类似List , Map ,ArrayList、自定义的类型,如List<Teacher> teachers, 就不可以了。 会报错:MorphDynaBean cannot be cast to con.test……
在JSONObject.toBean的时候如果转换的类中有集合,可以先定义Map<String, Class> classMap = new HashMap<String, Class>();在classMap中put你要转换的类中的集合名,像:classMap.put("teachers", Teacher.class);然后在toBean()的时候把参数加上, 像:Student student=(Student) JSONObject.toBean(str, Student.class, classMap);
比如我定义了如下类型:
import java.util.List; /** * * <P>Tiltle: AnalysisModel.java </P> * <P>Description:模型类 </P> * @author biyutong * @date Jun 11, 2012 9:37:54 AM * @version :V1.0 */ public class AnalysisModel implements java.io.Serializable{ /** * 固定条件 */private List<Condition> regularCondtionList;// /** * 动态条件 */private List<ConditionField> dynamicConFieldList; /** * 结果 */private List<ResultField> resultField; /** * 获取前多少条数据 */private Integer topnum; /** * 顺序还是随机 */private String sortFlag; /** * 备注 */private String remark; /** * 模型名称 */private String modelName; /** * 对应的xml文件名称 */private String fileName; public List<Condition> getRegularCondtionList() { return regularCondtionList; } publicvoid setRegularCondtionList(List<Condition> regularCondtionList) { this.regularCondtionList = regularCondtionList; } public List<ConditionField> getDynamicConFieldList() { return dynamicConFieldList; } publicvoid setDynamicConFieldList(List<ConditionField> dynamicConFieldList) { this.dynamicConFieldList = dynamicConFieldList; } public Integer getTopnum() { return topnum; } publicvoid setTopnum(Integer topnum) { this.topnum = topnum; } public String getSortFlag() { return sortFlag; } publicvoid setSortFlag(String sortFlag) { this.sortFlag = sortFlag; } public String getRemark() { return remark; } publicvoid setRemark(String remark) { this.remark = remark; } public String getModelName() { return modelName; } publicvoid setModelName(String modelName) { this.modelName = modelName; } public List<ResultField> getResultField() { return resultField; } publicvoid setResultField(List<ResultField> resultField) { this.resultField = resultField; } public String getFileName() { return fileName; } publicvoid setFileName(String fileName) { this.fileName = fileName; } }
在转化的时候需要这样来写:
Map<String, Class> classMap = new HashMap<String, Class>(); classMap.put("regularCondtionList", Condition.class); classMap.put("dynamicConFieldList", ConditionField.class); classMap.put("resultField", ResultField.class); AnalysisModel analysisModel=(AnalysisModel) JSONObject.toBean(str, AnalysisModel.class, classMap);
原文:http://www.cnblogs.com/jiangyaqiong/p/4561383.html
内容总结
以上是互联网集市为您收集整理的实体类中含集合或者map的json转换全部内容,希望文章能够帮你解决实体类中含集合或者map的json转换所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。