用fastjson将数据序列化和反序列化给jfinal的model的方案
发布时间:2020-12-16 19:13:19 所属栏目:百科 来源:网络整理
导读:span style="font-family: Arial,Helvetica,sans-serif; background-color: rgb(255,255,255);"阅读过jfinal源码和fastjson支持的解析类型的人应该都知道/span jfinal的model是将所有数据存在一个map中,如下是jfinal中model存储数据的地方 /** * Attributes
<span style="font-family: Arial,Helvetica,sans-serif; background-color: rgb(255,255,255);">阅读过jfinal源码和fastjson支持的解析类型的人应该都知道</span> jfinal的model是将所有数据存在一个map中,如下是jfinal中model存储数据的地方 /** * Attributes of this model */ private Map<String,Object> attrs = getAttrsMap(); 解决方案一: 将model中添加好所有的属性,按照正常的对象来承载我们的数据,再做相应的dao操作
public class Contacts extends Model<Contacts>{ /** * */ private static final long serialVersionUID = 1L; public static Contacts dao = new Contacts(); /** 主键id */ private int id; /** 姓名 */ private String name; /** 号码 */ private String number; /** 组别 */ private String group; /** 备注 */ private String remark; public int getId() { return id; } public void setId(int id) { set("id",id); this.id = id; } public String getName() { return name; } public void setName(String name) { set("name",name); this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { set("number",number); this.number = number; } public String getGroup() { return group; } public void setGroup(String group) { set("group",group); this.group = group; } public String getRemark() { return remark; } public void setRemark(String remark) { set("remark",remark); this.remark = remark; } } 解决方案二: 序列化的时候我们需要得到我们的model中的数据,在model中有一个protected类型的getAttrs方法,所以在我们的controller中无法直接调用 我们在model中写一个public类型的方法来调用这个这个方法
public class Contacts extends Model<Contacts>{ /** * private static final long serialVersionUID = 1L; public static Contacts dao = new Contacts(); public Map<String,Object> getAll() { return this.getAttrs(); } }<span style="font-family: Arial,sans-serif;"> </span>在我们的controller中序列化的代码 // 拼接json StringBuffer jsonResult = new StringBuffer("["); for(int i = 0; i < listContacts.size(); i++) { jsonResult.append(JSON.toJSONString(listContacts.get(i).getAll())); if( !(i == listContacts.size()-1) ){ jsonResult.append(","); } } jsonResult.append("]"); 反序列化的代码,(这里我们以删除为例) List<Map<String,Object>> listMap = JSON.parSEObject(jsonStr,new TypeReference<List<Map<String,Object>>>(){}); for(Map<String,Object> list: listMap) { <pre name="code" class="java"><span style="white-space:pre"> </span>Contacts.dao.setAttrs(list).delete();} */ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |