Fastjson 汇总篇

本文汇总了Fastjson的使用,强调其存在的安全问题并建议使用新版本。内容涵盖maven依赖、JSON字符串到对象的转换,包括简单对象、数组和复杂对象,以及对象反序列化为JSON字符串的示例。
摘要由CSDN通过智能技术生成


【前言】

Fastjson <= 1.2.68 存在安全漏洞,请使用更高版本】
在这里插入图片描述


【总结篇】

json字符串 -> object

// json字符串转换为JSON对象
JSONObject parseObject(String jsonString)
JSONArray parseArray(String jsonString)

// json字符串转换为javaBean
T parseObject(String jsonString, Class<T> clazz)
List<T> parseArray(String jsonString, Class<T> clazz)

object -> json字符串

String toJSONString(Object object)

如果对FastJson比较熟悉的话直接使用总结的API即可(可以略过下面内容),如果不熟悉下面提供具体的步骤和案例


【使用篇】

【maven依赖】

在这里插入图片描述

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

【json数据】

// json字符串-简单对象型
private static final String  JSON_OBJ_STR = "{'studentName':'lily','studentAge':12}";

// json字符串-数组类型
private static final String  JSON_ARRAY_STR = "[{'studentName':'lily','studentAge':12},{'studentName':'lucy','studentAge':15}]";

// 复杂格式json字符串
private static final String  COMPLEX_JSON_STR = "{'teacherName':'crystall','teacherAge':27,'course':{'courseName':'english','code':1270},'students':[{'studentName':'lily','studentAge':12},{'studentName':'lucy','studentAge':15}]}";

【解析JSON字符串】

JSON格式字符串 --> JSON对象

json字符串(简单对象型) --> JSONObject

public static void testJSONStrToJSONObject(){

    JSONObject jsonObject = JSON.parseObject(JSON_OBJ_STR);
   	System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));

}

json字符串(数组类型) --> JSONArray

public static void testJSONStrToJSONArray(){

    JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);

    for (Object obj : jsonArray) {
        JSONObject jsonObject = (JSONObject) obj;
        System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));
    }
}

复杂json格式字符串 --> JSONObject

public static void testComplexJSONStrToJSONObject(){

    JSONObject jsonObject = JSON.parseObject(COMPLEX_JSON_STR);
       
    String teacherName = jsonObject.getString("teacherName");
    Integer teacherAge = jsonObject.getInteger("teacherAge");
    JSONObject course = jsonObject.getJSONObject("course");
    JSONArray students = jsonObject.getJSONArray("students");

}
JSON格式字符串 --> javaBean

准备实体类:

@Data
public class Student {
    private String studentName;
    private Integer studentAge;
}
@Data
public class Course {
    private String courseName;
    private Integer code;
}
@Data
public class Teacher {
    private String teacherName;
    private Integer teacherAge;
    private Course course;
    private List<Student> students;
}

json字符串(简单对象型) --> javaBean

public static void testJSONStrToJavaBeanObj(){

	Student student = JSON.parseObject(JSON_OBJ_STR, Student.class);

	System.out.println(student.getStudentName()+":"+student.getStudentAge());

}

json字符串(数组类型) --> javaBean

 public static void testJSONStrToJavaBeanList(){
     
     List<Student> students = JSON.parseArray(JSON_ARRAY_STR, Student.class);
     
     for (Student student : students) {
         System.out.println(student.getStudentName()+":"+student.getStudentAge());
     }
     
 }

复杂json格式字符串 --> javaBean

public static void testComplexJSONStrToJavaBean(){

    Teacher teacher = JSON.parseObject(COMPLEX_JSON_STR, Teacher.class);
   
    String teacherName = teacher.getTeacherName();
    Integer teacherAge = teacher.getTeacherAge();
    Course course = teacher.getCourse();
    List<Student> students = teacher.getStudents();
    
}

Object -> JSON字符串

String toJSONString(Object object)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值