美文网首页
FastJSON学习笔记

FastJSON学习笔记

作者: 二枚目 | 来源:发表于2018-08-21 11:28 被阅读52次

fastjson介绍
fastjson是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
主要特点:
快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson
强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
零依赖(没有依赖其它任何类库除了JDK)

fastjson使用
FastJson对于json格式字符串的解析主要用到了下面三个类:
1.JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换
2.JSONObject:fastJson提供的json对象
3.JSONArray:fastJson提供json数组对象

JSONObject当成一个Map来看,只是JSONObject提供了更为丰富便捷的方法,方便我们对于对象属性的操作。我们看一下源码。

JSONArray当做一个List,可以把JSONArray看成JSONObject对象的一个集合。

定义三个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}]}";

示例1:JSON格式字符串与JSON对象之间的转换。
示例1.1-json字符串-简单对象型与JSONObject之间的转换

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

示例1.2-json字符串-数组类型与JSONArray之间的转换

JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);
//遍历方式1
for (int i = 0; i < jsonArray.size(); i++){
JSONObject jsonObject = jsonArray.getJSONObject(i); System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));
}
//遍历方式2 for (Object obj : jsonArray) {
JSONObject jsonObject = (JSONObject) obj; System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));
}

示例1.3-复杂json格式字符串与JSONObject之间的转换

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");

示例2:JSON格式字符串与javaBean之间的转换。
首先,创建三个与数据源相应的javaBean。此处略

示例2.1-json字符串-简单对象型与javaBean之间的转换

Student student = JSON.parseObject(JSON_OBJ_STR, new TypeReference() {}); System.out.println(student.getStudentName()+":"+student.getStudentAge());

示例2.2-json字符串-数组类型与javaBean之间的转换

ArrayList students = JSON.parseObject(JSON_ARRAY_STR, new TypeReference>() {});
for (Student student : students) {
System.out.println(student.getStudentName()+":"+student.getStudentAge());
}

示例2.3-复杂json格式字符串与与javaBean之间的转换

Teacher teacher = JSON.parseObject(COMPLEX_JSON_STR, new TypeReference() {});
String teacherName = teacher.getTeacherName();
Integer teacherAge = teacher.getTeacherAge();
Course course = teacher.getCourse();
List students = teacher.getStudents();

关于Fastjson的详细使用可以查看w3cschool的Fastjson的中文版API文档

相关文章

  • SpringBoot2.0使用FastJson转换器(以及Mes

    目录 SpringBoot2.0使用FastJson转换器 本篇文章为学习笔记FastJson 1.2.49

  • FastJSON学习笔记

    fastjson介绍fastjson是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴...

  • FastJson 笔记

    https://www.yuque.com/miyang.meyoung/cpggn9/fastjson[http...

  • com.alibaba.fastjson学习笔记

    1. 简介 fastjson是由alibaba开源的一套json处理器。与其他json处理器(如Gson,Jack...

  • FastJson学习整理

    FastJson对于json格式字符串的解析主要用到了下面三个类: 1.JSON:fastJson的解析器,用于J...

  • Fastjson漏洞学习

    近期暴露了阿里的Fastjson反序列漏洞,作为一个安全小白,在网上搜索了很多大神书写的资料学习,并通过搭建环境的...

  • 实习 4.0

    com.alibaba.fastjson.JSONArray;com.alibaba.fastjson.JSONO...

  • json字符串转map

    采用fastjson 添加依赖:implementation 'com.alibaba:fastjson:1.1....

  • FastJson混淆的坑

    FastJson 混淆代码 -dontwarn com.alibaba.fastjson.**-keep clas...

  • fastjson学习及解析

    fastjson 是一个性能极好的用 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。 ...

网友评论

      本文标题:FastJSON学习笔记

      本文链接:https://www.haomeiwen.com/subject/saydiftx.html