Java学习之jackson篇

0x00 前言

本篇内容比较简单,简单记录。

0x01 Json 概述

概述:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

这里复制了一段百度百科的解释,其实内容都可以用一句话来概括。

json主要用于数据交互,主要有键值对来表示。

而在Java里面需要解析json需要用到json的解析器。

0x02 jackson 解析器

在Java里面常见的json解析器有

Jsonlib,Gson,fastjson,jackson

那么这里拿jackson来进行演示。

常用方法

1. readValue(json字符串数据,Class)      json转换为java对象

2.writeValue(参数1,obj):
参数1: File:将obj对象转换为JSON字符串,并保存到指定的文件中 Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中 OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中 3.writeValueAsString(obj):将对象转为json字符串

注解:

1. @JsonIgnore:排除属性。

2. @JsonFormat:属性值得格式化

对象转Json

这里还需要定义一个实体类,这里就不写了。

package com.test.domain;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; public class jsonDemo {
public static void main(String[] args) {
Person person = new Person();
person.setName("xiaoming");
person.setSex("name");
person.setAge(18);
ObjectMapper objectMapper = new ObjectMapper();
try {
String s = objectMapper.writeValueAsString(person);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
} }
}

显示数据:

{"name":"xiaoming","age":18,"sex":"name"}

list集合转换json

package com.test.domain;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.ArrayList;
import java.util.List; public class jsonDemo {
public static void main(String[] args) {
Person p1= new Person();
p1.setName("xiaoming");
p1.setSex("name");
p1.setAge(18);
Person p2= new Person();
p2.setName("xiaoming");
p2.setSex("name");
p2.setAge(18);
ObjectMapper objectMapper = new ObjectMapper();
List<Person> list = new ArrayList<>();
list.add(p1);
list.add(p2); try {
String s = objectMapper.writeValueAsString(list);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}

json转Java对象

package com.test.domain;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException;
import java.util.ArrayList;
import java.util.List; public class jsonDemo {
public static void main(String[] args) throws IOException {
String json = "{\"sex\":\"男\",\"age\":\"18\",\"name\":\"xiaoming\"}";
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(json, Person.class);
System.out.println(person.toString());
}
}

0x03 结尾

后面准备开始更新Java框架内容。

最新文章

  1. RN8209校正软件开发心得(1)
  2. Codeforces Round #242 (Div. 2) B. Megacity
  3. 用live writer写博客
  4. 记32位程序(使用3gb用户虚拟内存)使用D3DX9导致的一个崩溃的问题
  5. &lt;转载&gt;DB2常用命令
  6. Tomcat7启动报Error listenerStart错误--转载
  7. C++实现网格水印之调试笔记(二)
  8. Maven deploy时报Fatal error compiling: tools.jar not found错误的问题处理
  9. JS取消浏览器文本选中的方法
  10. Myeclipse10连接SqlServer2012
  11. php 高并发下 秒杀处理思路
  12. python入门(1)python的前景
  13. [Django]bulk_create 探究
  14. MongoDB数据查询 --MongoDB
  15. MVC 验证规则扩展(当RoleID 属性值为A,B 时,Email 属性必填)
  16. 设计模式---数据结构模式之组合模式(Composite)
  17. 涂抹mysql笔记-mysql数据库文件结构
  18. eclipse----&gt;自己常用的快捷键
  19. php实现SSO单点登录实例
  20. Django-Filter源码解析一

热门文章

  1. Android | 玩转AppBarLayout,设置scrollFlags滑动属性详解
  2. QT项目-Chart Themes Example学习(一)
  3. 工具 | Typora + PicGo-Core 自动上传图片到图床
  4. 有了CMDB,为什么还需要应用配置管理?
  5. 第十届蓝桥杯大赛软件类省赛C/C++研究生组 试题I:灵能传输
  6. [.net] 关于Exception的几点思考和在项目中的使用(三)
  7. python基础(〇):注释
  8. 201871030115-康旭 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
  9. Spring Boot 实现配置文件加解密原理
  10. GO-03-基础