JSON解析

导入com.alibaba.fastjson
第一步:先创建3个javaBean类

Teacher类:
public class Teacher {
private String teacherName;
private Integer teacherAge;
private Course course;
private List students;

此处省去get/set方法

Student类:
public class Student {
private String studentName;
private Integer studentAge;

此处省去get/set方法

}

Course类
public class Course {
private String courseName;
private Integer code;

此处省去get/set方法

}

第二步: 创建JSONUtils类

public class JSONUtils {

//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_str_str = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";

/**
 * json字符串-简单类型转换为JSONObject
 */
@Test
public void toJSONStrToJSONObject() {
    JSONObject jsonObject = JSON.parseObject(json_obj_str);
    System.out.println(jsonObject.getString("studentName") + jsonObject.getInteger("studentAge"));
}

/**
 * json字符串-数组类型转换为JSONObjcet
 */
@Test
public void toJSONStrToJSONArray() {
    JSONArray jsonArray = JSON.parseArray(json_array_str);

    //遍历
    for (int i = 0; i < jsonArray.size(); i++) {
        JSONObject jsonObject = jsonArray.getJSONObject(i);
        System.out.println(jsonObject.getString("studentName") + jsonObject.getString("studentAge"));
    }
}

/**
 * JSON字符串-复杂类型转换为JSONObject
 */
@Test
public void toJSONStrToJSONComplex() {
    JSONObject jsonObject = JSON.parseObject(complex_str_str);
    String teacherName = jsonObject.getString("teacherName");
    Integer teacherAge = jsonObject.getInteger("teacherAge");

    //获取对象里的值
    JSONObject course = jsonObject.getJSONObject("course");
    String courseName = course.getString("courseName");
    Integer code = course.getInteger("code");

    //获取数组里的值
    JSONArray students = jsonObject.getJSONArray("students");

    String studentName = null;
    int studentAge = 0;
    for (int i = 0; i < students.size(); i++) {
        JSONObject jsonObject1 = students.getJSONObject(i);
        studentName = jsonObject1.getString("studentName");
        studentAge = jsonObject1.getInteger("studentAge");
    }

    System.out.println("teacherName:" + teacherName);
    System.out.println("teacherAge:" + teacherAge);
    System.out.println("courseName:" + courseName);
    System.out.println("code:" + code);
    System.out.println("studentName:" + studentName);
    System.out.println("studentAge:" + studentAge);
}

/**
 * json字符串-简单类型转换为javabean对象
 */
@Test
public void toJSONStrToJavaBeanObj() {
    Student student = JSON.parseObject(json_obj_str, new TypeReference<Student>() {
    });
    System.out.println(student.getStudentName() + student.getStudentAge());
}

/**
 * json字符串-数组类型转换为javabean对象
 */
@Test
public void toJSONStrToJavaBeanList() {
    ArrayList<Student> studentsList = JSON.parseObject(json_array_str, new TypeReference<ArrayList<Student>>() {
    });
    Iterator<Student> iterator = studentsList.iterator();
    while (iterator.hasNext()) {
        Student student = iterator.next();
        System.out.println(student.getStudentName() + student.getStudentAge());
    }
}

/**
 * java字符串-复杂类型转换为javaBean对象
 */
@Test
public void toJSONStrComplexToJavaBean() {
    Teacher teacher = JSON.parseObject(complex_str_str, new TypeReference<Teacher>() {
    });

    String teacherName = teacher.getTeacherName();
    Integer teacherAge = teacher.getTeacherAge();
    
    Course course = teacher.getCourse();
    String courseName = course.getCourseName();
    Integer code = course.getCode();

    List<Student> studentsList = teacher.getStudents();
    for (int i = 0; i <studentsList.size() ; i++) {
        Student student = studentsList.get(i);
        System.out.println(student.getStudentName()+"----"+student.getStudentAge());
    }

    System.out.println("teacherName:"+teacherName);
    System.out.println("teacherAge:"+teacherAge);
    System.out.println("courseName:"+courseName);
    System.out.println("code:"+code);
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值