最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

阿里巴巴FastJson工具的简单使用

Javaweb 太平洋学习网 浏览 评论

FastJson是一个高性能的json object转换工具,它是由阿里巴巴(alibaba)公司开发的,使用fastjson非常简单,首先在我们javaweb项目中的pom.xml中加入fastjson maven导入相关的jar包,如下。

<dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.2.38</version>
</dependency>

 fastjson常用的方法无非就是以下几种,它们的入口都是import com.alibaba.fastjson.xxxx的,请不要使用到了别的入口文件。

// 把JSON文本解析为JSONObject或者JSONArray
public static final Object parse(String text); 

// 将JavaBean对象转换为JSONObject或者JSONArray
public static final Object toJSON(Object javaObject); 

// 把JSON文本解析成JSONObject
public static final JSONObject parseObject(String text);

// 把JSON文本解析成JSONArray
public static final JSONArray parseArray(String text); 

// 把JSON文本解析为JavaBean对象
public static final <T> T parseObject(String text, Class<T> clazz);  //常用

//把JSON文本解析成JavaBean集合
public static final <T> List<T> parseArray(String text, Class<T> clazz); //常用

// 将JavaBean对象序列化为JSON字符串
public static final String toJSONString(Object object); //常用

// 将JavaBean对象序列化为带格式的JSON字符串
public static final String toJSONString(Object object, boolean prettyFormat); //常用

 为什么有些要将json字符串或javabean对象转换为JSONObject/JSONArray对象呢,这是因为JSONObject/JSONArray里面有很多操作json字符串的方法,例如

JSONObject.get(key) //获取某个key值
JSONObject.remove(key) //删除某个key
.....

JSONArray.add(object) //添加某个对象到jsonArray中
.....

 下面将用一个简单案例来讲解如何使用FastJson来操作json字符串,例如有以下这样一段json字符串,它是一个用户列表的json数据,如下。

[{"id":96,"username":"lisi1","password":"888888","phone":"66666","address":"北京","score":75},
{"id":97,"username":"lisi2","password":"888889","phone":"66667","address":"湖北","score":76},
{"id":98,"username":"lisi3","password":"888890","phone":"66668","address":"江西","score":77}]

它对应的JavaBean实体类对象为User类,如下所示。

package com.maizhe.entity;
public class User {
    private Integer id;
    private String username;
    private String password;
    private String phone;
    private String address;
    private Integer score;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public Integer getScore() {
        return score;
    }
    public void setScore(Integer score) {
        this.score = score;
    }
}

使用最上面列举的FastJson方法将用户列表json数据转化为用户集合List<User>的形式,很简单。

//jsonStr表示的是上面的那段json字符串数据
List<User> list = JSONObject.parseArray(jsonStr,User.class);

当然了,我们也可以将这个List<User> list 转换回原来的json字符串,可以使用以下方法,很是简单。

String jsonStr= JSONObject.toJSONString(list);

假如最上面的那个json字符串不是一个字符串数组,而只是一个字符串对象,如下这样。

{"id":96,"username":"lisi1","password":"888888","phone":"66666","address":"北京","score":75}

那么我们可以将上面这段json直接转化为User对象,而不是User List集合,如下。

User user = JSONObject.parseObject(jsonStr,User.class);
来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/2017/1006/262.html

    与本文相关的文章

    发表我的评论
    取消评论

    表情

    您的回复是我们的动力!

    • 昵称 (必填)

    网友最新评论