一、前言
之前简单的了解了一下JSON的一些类似JSON是个啥,为什么要有JSON,JSON与XML的区别,JSON的语法规则等基础概念(可跳转学习笔记:https://blog.csdn.net/qq_38586378/article/details/102989550),想着后端尤其在Java Web项目中的话应该是要学会Java与JSON的相互转换的,恰好之前毕设的时候又遇到过这个技术点,就是Jackson,就简单的做了个小demo进行记录。
二、参考链接
- https://blog.csdn.net/u011054333/article/details/80504154
- https://www.cnblogs.com/naaoveGIS/p/3893651.html
- https://www.jianshu.com/p/4bd355715419
- https://www.yiibai.com/jackson
三、知识点及技术的简单介绍
3.1 JSON
JSON,JavaScript Object Notation,一种轻量级数据转换格式;本身就是一个字符;不受编程语言限制,支持与多种类型数据进行转换;表示方法是名称 : 值,其中名称为字符串,值可为整数、浮点数、字符串、布尔值、数组、对象和null,其中数组数据在 [] 中,对象数据在 {} 中;数据间使用 , 隔开;JSON相对于XML,数据结构更简洁,更适合于面向对象的通过RESTful API通信的应用程序开发。
3.2 Jackson
Jackson是一个简单的基于Java的应用库,可轻松完成Java对象与JSON、XML的相互转换;依赖jar包少,性能高;社区活跃,更新快。
一般处理JSON有三种方式:
- 流式API——读取JSON并将JSON写入作为离散事件,主要涉及JsonParser和JsonGenerator方法,前者读取数据,后者写入数据。是最有效、最低开销、最快的读/写操作
- 树模型——准备JSON文件并以树的形式保存在内存中,主要涉及JsonNode节点,readTree方法读取树
- 数据绑定——转换JSON,主要分为简单的数据绑定和全部数据绑定。前者是转换JSON和Java的Map、List、String、整数、布尔值和null对象;后者是指将JSON转为任何的Java对象。使用ObjectMapper的writeValueAsString将Java对象转JSON,readValue方法将JSON转为Java对象
Jackson涉及三个核心模块:
- jackson-core:定义低级的流式API,包括JSON处理细节
- jackson-annotation:包括Jackson注解
- jackson-databind:实现Java对象与JSON的相互转换
一般使用方法,以Spring Boot为例,直接在pom.xml配置文件中加以jackson-databind依赖即可(最好是把Jackson的三个核心模块都给加上,有一些异常处理可能需要import一下)。
四、实现过程
4.1 Java实体类创建
设计一个Student对象,对象属性有ID、Name、Sex、Class班级、Address、Parents