FastJson
发布时间:2020-12-16 19:33:51 所属栏目:百科 来源:网络整理
导读:今天初步学习了Json,记录一下吧: 这次接触的Json是由Alibaba开发的基于Java的JSON处理器,主要特点是解析速度快 FastJson的入口:com.alibaba.fastjson.JSON, 他提供了一系列用于序列化、反序列化的方法: public static final Object parse(String text)
今天初步学习了Json,记录一下吧: 这次接触的Json是由Alibaba开发的基于Java的JSON处理器,主要特点是解析速度快 FastJson的入口:com.alibaba.fastjson.JSON, 他提供了一系列用于序列化、反序列化的方法: public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parSEObject(String text); // 把JSON文本parse成JSONObject public static final T parSEObject(String text,Class clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final List parseArray(String text,Class clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object,boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray。 //此外,还有一个转换为bean对象数组的方法 <pre name="code" class="java">public static final Object <span style="font-family: Arial,Helvetica,sans-serif;">parSEObject(JsonString,new TypeReference<VIPHuodong[]>(){})</span> 今天给豆果数据管理平台增加了一个新功能:获取VIP用户的参加过的活动数据,这个活动数据是存储在另一个数据库中的表,配置2个以上数据库上一篇有讲。 用户活动数据在数据库中以Json数据的方式存在: [{"title":"u738bu7476u6d4bu8bd5u4e13u7528","address":"u7684","id":"23"},{"title":"u82cfu6ccau5c1424CMu597du5e2eu624bTu578bu538bu529bu9505","id":"4"},{"title":"u8bd5u7528u6d4bu8bd5u554a----","address":"djqiqofp","id":"22"},{"title":"u3010u6d4bu8bd5u4e0du8981u4feeu6539u3011u677eu4e0bu56dbu795eu5668","address":"u53c8u6765u62a5u540du4e86","id":"31"},{"title":"fsdfdsf","address":"u7684u5de5u5546u5730u65b9u516cu53f8","id":"63"},{"title":"","address":"1u4eb2u6253u7b97u53d1u5676u6253u53d1u4f3cu7684","id":"65"},"address":";ladsj;ladf","id":"125"},"address":"dfgsdfg","id":"133"}]于是呢,我重新定义一个bean,用来存储这些数据: @SuppressWarnings("serial") public class VIPHuodong implements Serializable { private int id; private String address; private String title; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }将数据从数据库中取出来,但是取出来的是String类型的数据,这时候就需要fastJson来转换了: //获取特定用户的活动内容 public List<?> getVipUserHuodong(int userid){ Object[] parms = new Object[]{userid}; List<VIPUserHuodong> list = dgDataJdbcTemplate.query(queryUserHuodong,parms,new VIPUserHuodongRowMapper()); if(0 == list.size()){ return new ArrayList<String>() ; } else { VIPUserHuodong vipUserHuodong = list.get(0) ; String JsonString = vipUserHuodong.getContent() ; VIPHuodong[] vipHuodong = JSON.parSEObject(JsonString,new TypeReference<VIPHuodong[]>(){}) ; List<?> huodongList = Arrays.asList(vipHuodong) ; System.out.println(huodongList); return huodongList ; } }这边返回的是一个bean类型的数组,再调用array类的asList方法转换为List集合,这样一来就能把这个list发送给前台,通过JSTL表达式的foreach来遍历他了
目前就了解了这么多,后续再补充 (@DATE 17:50 8/2/2016,来豆果的第12天,收获很多~) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |