阿里巴巴fastJson使用

来源:互联网 发布:orange pi 树莓派 知乎 编辑:程序博客网 时间:2024/05/05 05:31

项目中用到,记录一下~


1. 简单的包装

public class WrapEasy {    public static void main(String[]args){        User u = new User();        u.setAge(18);        u.setName("JY");        //转换为Json字符串        String jsonString = JSON.toJSONString(u);        System.out.println(jsonString);        //Json字符串转换为Json对象        JSONObject json = JSON.parseObject(jsonString);        System.out.println(json.get("name"));//解析    }    private static class User{       private String name;       private  int age;        public String getName() {            return name;        }        public void setName(String name) {            this.name = name;        }        public int getAge() {            return age;        }        public void setAge(int age) {            this.age = age;        }    }}

输出结果为:

{"age":18,"name":"JY"}JY

2. 复杂点的包装,带List的

    domain

static class Group {        private Long       id;        private String     name;        private List<User> users = new ArrayList<User>();        //省略get和set,下同    }    static class User {        private Long   id;        private String name;    }

包装

Group group = new Group();        group.setId(0L);        group.setName("admin");        User guestUser = new User();        guestUser.setId(2L);        guestUser.setName("guest");        User rootUser = new User();        rootUser.setId(3L);        rootUser.setName("root");        group.getUsers().add(guestUser);        group.getUsers().add(rootUser);        String jsonString = JSON.toJSONString(group);        System.out.println(jsonString);

输出结果

{"id":0,"name":"admin","users":[{"id":2,"name":"guest"},{"id":3,"name":"root"}]}

3. 实际解析

解析的Json串可能稍微复杂点,如下图所示

 

可以看到首先getSayShare是一个标识头,其中有N个对象,每个对象中包含sID\userID等字段以及一个对象数组comment,而对象comment又有一些属性,下面对其进行解析,分别得到getSayShare的每个属性,代码如下

域对象

public class comment {    public String id,sID, uId, _comment, time, comment_reply;}
<pre style="font-size: 10.5pt; font-weight: bold; line-height: 20px; font-family: 宋体; background-color: rgb(255, 255, 255);"><pre name="code" class="java">public class SayShareAll {    public String sID, userID, imageStrs, content, time, location, goods,commentsId,idDel;    public List<comment> comment;}
public class NewSayShare {    public List<SayShareAll> getSayShare;}
可以看到,头部为List<>的名字,

NewSayShare gg = JSON.parseObject(result, NewSayShare.class);                List<SayShareAll> ssaDeco = gg.getSayShare;//解析后是一个list对象                for(SayShareAll ss:ssaDeco){                    HashMap<String,Object> map = new HashMap<String,Object>();                    map.put("sID",ss.sID);                    map.put("userID",ss.userID);                    map.put("imageStr",ss.imageStrs);                    map.put("content",ss.content);                    map.put("time",ss.time);                    map.put("location",ss.location);                    map.put("goods",ss.goods);                    map.put("commentsId",ss.commentsId);                    map.put("idDel",ss.idDel);                    map.put("comment",ss.comment);//此处实时ss.comment是一个List<comment>的数组类型                    result_Test.add(map);                }

此处把对象取出放入了map中。解析完成

以后继续更博了~~~继续加油

0 0