加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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天,收获很多~)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读