Jackson 介绍

Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”。

Jackson框架包含了3个核心库:streaming,databind,annotations.Jackson还包含了其它数据处理类库,此外不作说明。

Jackson版本: 1.x (目前版本从1.1~1.9)与2.x。1.x与2.x从包的命名上可以看出来,1.x的类库中,包命名以:org.codehaus.jackson.xxx开头,而2.x类库中包命令:com.fastxml.jackson.xxx开头

jackson核心类说明

JsonGenerator:定义了写JSON内容的公共api基类,实例使用工厂方法创建;

JsonFactory:jackson包最主要的工厂类,主要被用于配置和构建reader(JsonParser)和writer(JsonGenerator);

ObjectMapper:ObjectMapper提供读写JSON、POJOs对象序列化成JSON和反序列化、JSON树模型;ObjectMapper是json序列化与反序列化的核心,可以在ObjectMapper配置许多属性。

ConfigFeature——配置类接口

MapperFeature——Enumeration that defines simple on/off features to set for {@link ObjectMapper}

DeserializationFeature——Enumeration that defines simple on/off features that affect the way Java objects are deserialized from JSON

SerializationFeature——Enumeration that defines simple on/off features that affect the way Java objects are serialized

maven引入jackson包

com.fasterxml.jackson.core

jackson-core

2.8.5

com.fasterxml.jackson.core

jackson-annotations

2.8.5

com.fasterxml.jackson.core

jackson-databind

2.8.5

POJOs序列化为JSON以及JSON反序列化成POJOs

POJOs (Plain Old Java Objects)

public static class MyClass {

private String name;

private String passwd;

private String address;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPasswd() {

return passwd;

}

public void setPasswd(String passwd) {

this.passwd = passwd;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

@Override

public String toString() {

return "MyClass{" +

"name='" + name + '\'' +

", passwd='" + passwd + '\'' +

", address='" + address + '\'' +

'}';

}

}

jackson序列化以及反序列化

@Test

public void test() throws IOException {

ObjectMapper mapper = new ObjectMapper();

MyClass myClass = new MyClass();

myClass.setName("daidai");

myClass.setPasswd("123456");

myClass.setAddress("beijing");

File newFile = new File("my-class.json");

System.out.println(mapper.canSerialize(Timestamp.class));

System.out.println(mapper.canDeserialize(JsonUtil.constructParametricType(List.class, MyClass.class)));

// json序列化

// 序列化到文件

mapper.writeValue(newFile, myClass);

// 序列化成字符串

String json = mapper.writeValueAsString(myClass);

System.out.println(json);

// json反序列化

// 从文件反序列化

MyClass older = mapper.readValue(new File("my-class.json"), MyClass.class);

System.out.println(older);

// 从json串反序列化

MyClass older2 = mapper.readValue(json, MyClass.class);

System.out.println(older2);

// json Tree解析

JsonNode root = mapper.readTree(newFile);

System.out.println(root.at("/passwd"));

System.out.println(root.at("/name"));

System.out.println(root.at("/address"));

}

java jackson maven_jackson系列(一)_基本使用相关推荐

  1. java jml_OO_JAVA_JML系列作业_单元总结

    OO_JAVA_JML系列作业_单元总结 (1)梳理JML语言的理论基础.应用工具链情况 简单梳理 以下三者是jml规格里的核心,对一个方法功能和属性的限制: requires子句:规定方法的前置条件 ...

  2. java hashset 实现原理_深入Java集合学习系列:HashSet的实现原理

    Updated on 九月 8, 2016 深入Java集合学习系列:HashSet的实现原理 1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持. ...

  3. Java 数据持久化系列之池化技术

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 在上一篇文章Java 数据持久化系列之JDBC中,我们了解到使用 ...

  4. 深度学习与计算机视觉系列(1)_基础介绍

    转载自: 深度学习与计算机视觉系列(1)_基础介绍 - 龙心尘 - 博客频道 - CSDN.NET http://blog.csdn.net/longxinchen_ml/article/detail ...

  5. Java之List系列--ArrayList保证线程安全的方法

    原文网址:Java之List系列--ArrayList保证线程安全的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java中的ArrayList.LinkedList如何进行线程安全的操作.为 ...

  6. python爬虫抓图_Python系列之五_爬虫抓图

    Python系列之五_爬虫抓图 前面我们粗略地学习了Python语言的语法,一直学语法也挺无聊的,现在让我们让做一些有趣的事情. 例如你在百度贴吧里看到一篇文章,里面有很多好看的图片,但是一张张另存比 ...

  7. Java之List系列--去重的方法

    原文网址:Java之List系列--去重的方法_IT利刃出鞘的博客-CSDN博客 简介 本文用示例介绍Java的List(ArrayList.LinkedList等)的去重的方法. List去重的方法 ...

  8. java源码系列:HashMap底层存储原理详解——4、技术本质-原理过程-算法-取模具体解决什么问题

    目录 简介 取模具体解决什么问题? 通过数组特性,推导ascii码计算出来的下标值,创建数组非常占用空间 取模,可保证下标,在HashMap默认创建下标之内 简介 上一篇文章,我们讲到 哈希算法.哈希 ...

  9. 2021最新Java面经系列整理,持续更新

    2021最新Java面经系列整理,持续更新... 欢迎大家关注收藏,一起加油O(∩_∩)O哈~ 2021最新Java面经系列 系列 内容 地址 框架篇 2021最新Java面经整理 | 框架篇(一)S ...

最新文章

  1. Linux(Centos)快速搭建SVN服务器
  2. 题目1254:N皇后问题(DFS)
  3. mysql 实时备份_MySQL实现实时备份[转]
  4. 登录文件传输服务器,生信小技巧之:在本地与服务器间快速传输文件,无密码登录远端服务器...
  5. python计算机代码_python告白代码,只属于程序员的浪漫
  6. algorithm与numeric的一些常用函数
  7. Objective-C学习总结-13协议1
  8. php 返回josn 中文,php返回json数据中文显示不友好的问题的解决办法
  9. SpringBoot读取JSON文件
  10. 如何更快通过BSCI审核
  11. [数据结构]《数据结构教程》多语言微课版创作计划
  12. 蓝电电池测试系统工步编辑软件,CT2001A
  13. iOS检测当前设备是否越狱系统
  14. CSAPP ArchitectureLab
  15. 女孩做妻子前应知道的10件事
  16. 小米5s 小米6 MIUI 系统 删除温控 破解限制
  17. 日常生活-不帮人投资理财
  18. 维达东南亚新总部正式投入运营;西门子能源在粤港澳大湾区持续深化务实合作 | 美通企业日报...
  19. ARPU与ARPPU 的概念
  20. HTML5 拖放Drag和drop用法以及事件介绍

热门文章

  1. 好分数班级等级C_2020年上海高校MTA旅游管理硕士分数线汇总
  2. Caesar I (Crypto, Training) 的多种简单解法
  3. java和设计模式(结构模式)
  4. 博彦科技:区块链建立优质农产品“信任链”|FISCO BCOS 2021 Meetup上海站
  5. Zencart网站搭建与配置教程
  6. Win10系统下安装和配置MathType7
  7. 铃木dl250参数_大为不同 #豪爵铃木DL250 ABS测评-基础篇
  8. scratch之十大经典排序算法-冒泡排序法
  9. 1年工作经验跳槽项目总监,看到他的数据可视化报表,我沉默了
  10. php删除文件夹函数,PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用...