fastJson的使用

来源:互联网 发布:芜湖网络推广公司 编辑:程序博客网 时间:2024/06/05 11:06

fastJson是阿里巴巴温少写的一个解析json的工具,效率比较高,方法运用也比较简单。
主要用的方法有:

JSON.parse方法是将json字符串转换成对应的JsonObject或JsonArray
JSON.parseArray(String) 将json字符串转换成jsonArray
JSON.parseArray(String,Class)将json字符串转换成List T
JSON.parseObject(String,Clazz)将json字符串转换成对象 返回T
JSON.toJSONString(u)对象变成json串

需要注意的一点:
在序列化 反序列化时有一些字段需要忽略或者格式化
用到了注解@JsonFiled
注意坑:对象属性必须为私有的 反序列化必须加在set方法上

name() json串和对象属性名字不一致 可以设置
format() 更多是用做格式化Date类型的时间
serialize() 序列化
deserialize()反序列化

@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})public @interface JSONField {    int ordinal() default 0;    String name() default "";    String format() default "";    boolean serialize() default true;    boolean deserialize() default true;    SerializerFeature[] serialzeFeatures() default {};    Feature[] parseFeatures() default {};}

这是练习的Demo

   private String json1 = "{'name':'hr','age':'25'}";    private String json2 = "['c','d','s','a']";    private String json3 = "[{'name':'hr','age':'25'},{'name':'hr','age':'25'},{'name':'hr','age':'25'}]";    /**     * JSON.parse方法是将json字符串转换成对应的JsonObject或JsonArray     */    @Test    public void test1(){        JSONObject parse = (JSONObject) JSON.parse(json1);        System.out.println(parse);        JSONArray array = (JSONArray) JSON.parse(json2);        System.out.println(array);    }    /**     * JSON.parseArray(String) 将json字符串转换成jsonArray     * JSON.parseArray(String,Class)将json字符串转换成List<T>     */    @Test    public void test2(){        JSONArray array = JSON.parseArray(json2);        System.out.println(array);        List<User> users = JSON.parseArray(json3, User.class);        System.out.println(users);    }    /**     * JSON.parseObject(String,Clazz)将json字符串转换成对象 返回T     */    @Test    public void test3(){        //简单类型        User user = JSON.parseObject(json1, User.class);        System.out.println(user);        //复杂类型 转换成Group对象  {"userList":[{"nn":"aa","age":"15"},{"nn":"aa","age":"15"}],"groupName":"aa"}        Group g = new Group();g.setGroupName("aa");        List<User> list = new ArrayList<User>();        User u = new User();u.setName("aa");u.setAge("15");        User u1 = new User();u1.setName("aa");u1.setAge("15");        list.add(u);list.add(u1);        g.setUserList(list);        JSONObject jsonObject = (JSONObject) JSON.toJSON(g);        System.out.println(jsonObject);        Group group = JSON.parseObject(jsonObject.toJSONString(), Group.class);        System.out.println(group);    }    /**     * 对象变成json串     */    @Test    public void test4(){        User u = new User();u.setName("aaa");u.setAge("aaaaa");        String s = JSON.toJSONString(u);        System.out.println(s);    }