java jackson maven_jackson系列(一)_基本使用
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系列(一)_基本使用相关推荐
- java jml_OO_JAVA_JML系列作业_单元总结
OO_JAVA_JML系列作业_单元总结 (1)梳理JML语言的理论基础.应用工具链情况 简单梳理 以下三者是jml规格里的核心,对一个方法功能和属性的限制: requires子句:规定方法的前置条件 ...
- java hashset 实现原理_深入Java集合学习系列:HashSet的实现原理
Updated on 九月 8, 2016 深入Java集合学习系列:HashSet的实现原理 1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持. ...
- Java 数据持久化系列之池化技术
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 在上一篇文章Java 数据持久化系列之JDBC中,我们了解到使用 ...
- 深度学习与计算机视觉系列(1)_基础介绍
转载自: 深度学习与计算机视觉系列(1)_基础介绍 - 龙心尘 - 博客频道 - CSDN.NET http://blog.csdn.net/longxinchen_ml/article/detail ...
- Java之List系列--ArrayList保证线程安全的方法
原文网址:Java之List系列--ArrayList保证线程安全的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java中的ArrayList.LinkedList如何进行线程安全的操作.为 ...
- python爬虫抓图_Python系列之五_爬虫抓图
Python系列之五_爬虫抓图 前面我们粗略地学习了Python语言的语法,一直学语法也挺无聊的,现在让我们让做一些有趣的事情. 例如你在百度贴吧里看到一篇文章,里面有很多好看的图片,但是一张张另存比 ...
- Java之List系列--去重的方法
原文网址:Java之List系列--去重的方法_IT利刃出鞘的博客-CSDN博客 简介 本文用示例介绍Java的List(ArrayList.LinkedList等)的去重的方法. List去重的方法 ...
- java源码系列:HashMap底层存储原理详解——4、技术本质-原理过程-算法-取模具体解决什么问题
目录 简介 取模具体解决什么问题? 通过数组特性,推导ascii码计算出来的下标值,创建数组非常占用空间 取模,可保证下标,在HashMap默认创建下标之内 简介 上一篇文章,我们讲到 哈希算法.哈希 ...
- 2021最新Java面经系列整理,持续更新
2021最新Java面经系列整理,持续更新... 欢迎大家关注收藏,一起加油O(∩_∩)O哈~ 2021最新Java面经系列 系列 内容 地址 框架篇 2021最新Java面经整理 | 框架篇(一)S ...
最新文章
- Linux(Centos)快速搭建SVN服务器
- 题目1254:N皇后问题(DFS)
- mysql 实时备份_MySQL实现实时备份[转]
- 登录文件传输服务器,生信小技巧之:在本地与服务器间快速传输文件,无密码登录远端服务器...
- python计算机代码_python告白代码,只属于程序员的浪漫
- algorithm与numeric的一些常用函数
- Objective-C学习总结-13协议1
- php 返回josn 中文,php返回json数据中文显示不友好的问题的解决办法
- SpringBoot读取JSON文件
- 如何更快通过BSCI审核
- [数据结构]《数据结构教程》多语言微课版创作计划
- 蓝电电池测试系统工步编辑软件,CT2001A
- iOS检测当前设备是否越狱系统
- CSAPP ArchitectureLab
- 女孩做妻子前应知道的10件事
- 小米5s 小米6 MIUI 系统 删除温控 破解限制
- 日常生活-不帮人投资理财
- 维达东南亚新总部正式投入运营;西门子能源在粤港澳大湾区持续深化务实合作 | 美通企业日报...
- ARPU与ARPPU 的概念
- HTML5 拖放Drag和drop用法以及事件介绍
热门文章
- 好分数班级等级C_2020年上海高校MTA旅游管理硕士分数线汇总
- Caesar I (Crypto, Training) 的多种简单解法
- java和设计模式(结构模式)
- 博彦科技:区块链建立优质农产品“信任链”|FISCO BCOS 2021 Meetup上海站
- Zencart网站搭建与配置教程
- Win10系统下安装和配置MathType7
- 铃木dl250参数_大为不同 #豪爵铃木DL250 ABS测评-基础篇
- scratch之十大经典排序算法-冒泡排序法
- 1年工作经验跳槽项目总监,看到他的数据可视化报表,我沉默了
- php删除文件夹函数,PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用...