FastJson介绍

Posted saifei1125

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastJson介绍相关的知识,希望对你有一定的参考价值。

fastjson主要是为了实现json对象和javaBean对象转换,javaBean和json字符串转换,json对象和json字符串相互转换。

fastjson包里面主要有3个类,Json、JsonArray、JsonObject,三者关系是:

image

其中jsonObject代表json对象,JsonArray代表json对象数据,Json代表JsonObject和JsonArray的转化

2、三个类的用途和方法

jsonObject:解析json数组,获取对象中的只,通常使用类里面的get方法

jsonArray:Json对象数组,通常通过迭代器取得其中的jsonJsonObject,再利用jsonObject的get方法进行取值

json:主要是jsonObject、jsonArray、javaBean实现类型相互转换,转换后取值还是按照各自的方法进行

3、相互转换

(1)字符串转换成jsonObject

 JSONObject jsonObject = JSON.parseObject(JSON_OBJ_STR);
 (2)jsonObject转换成字符串
 String s = JSON.toJSONString(jsonObject)
 (3)字符串转化成jsonArray
将JSON字符串数组转化为JSONArray,通过JSON的parseArray()方法。JSONArray本质上还是一个数组,对其进行遍历取得其中的JSONObject,然后再利用JSONObject的get()方法取得其中的值。
(4)jsonArray转换成字符串
 String s = JSON.toJSONString(jsonArray);
(5)字符串转化成javaBean
        // 第一种方式
        JSONObject jsonObject = JSON.parseObject(JSON_OBJ_STR);
        String studentName = jsonObject.getString("studentName");
        Integer studentAge = jsonObject.getInteger("studentAge");
        Student student = new Student(studentName, studentAge);
        // 第二种方式,//第二种方式,使用TypeReference<T>类,由于其构造方法使用protected进行修饰,故创建其子类
        Student student1 = JSON.parseObject(JSON_OBJ_STR, new TypeReference<Student>() {});
        // 第三种方式,通过反射,建议这种方式
        Student student2 = JSON.parseObject(JSON_OBJ_STR, Student.class);
​(6)javaBean转化成字符串
   String s = JSON.toJSONString(lily);
(7)jsonArray转化成javaBean-list
        // 方式一:
        JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);
        //遍历JSONArray
        List<Student> students = new ArrayList<Student>();
        Iterator<Object> iterator = jsonArray.iterator();
        while (iterator.hasNext()){
            JSONObject next = (JSONObject) iterator.next();
            String studentName = next.getString("studentName");
            Integer studentAge = next.getInteger("studentAge");
            Student student = new Student(studentName, studentAge);
            students.add(student);
        }
        // 方式二,使用TypeReference<T>类,由于其构造方法使用protected进行修饰,故创建其子类
        List<Student> studentList = JSON.parseObject(JSON_ARRAY_STR,new TypeReference<ArrayList<Student>>() {});
        // 方式三,使用反射
        List<Student> students1 = JSON.parseArray(JSON_ARRAY_STR, Student.class);
        System.out.println(students1);
​(8)javaBean-list转化成json字符串数组
 String s = JSON.toJSONString(students);

以上是关于FastJson介绍的主要内容,如果未能解决你的问题,请参考以下文章

Json 工具介绍 fastjson gson jackson

fastjson使用详解

FastJson学习

Fastjson反序列化漏洞

java FastJson的使用

高性能JSON框架之FastJson的简单使用