JSON解析器:

常见的解析器: Jsonlib, Gson, fastjson, jackson

其中应用最广泛的是jackson,阿里的fastjson虽然比jackson快一点,但存在的问题比较多,推荐使用jackson

使用步骤:

  1. 导入jackson的相关jar包
  2. 创建Jackson核心对象objectMapper
  3. 调用objectMapper的相关方法进行转换

Java对象转换JSON

person类

import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

public class Person {
private String name;
private int age;
private String gender; //JsonIgnore
@JsonFormat(pattern = "yyyy-MM-dd")
private Date bir; public Date getBir() {
return bir;
} public void setBir(Date bir) {
this.bir = bir;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getGender() {
return gender;
} public void setGender(String gender) {
this.gender = gender;
} @Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
    //Java对象转为JSON字符串
@Test
public void test1() throws Exception {
//1.创建Person对象
Person p = new Person();
p.setName("张三");
p.setAge(22);
p.setGender("男");
p.setBir(new Date()); //2.创建Jackson的核心对象 ObjectMapper
ObjectMapper mapper = new ObjectMapper();
//3.转换
/**
* 转换方法:
* writeValue(参数1,obj):
* 参数1:
* File:将obj对象转换为JSON字符串,并保存到指定的文件中
* Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流
* OutputString:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
*
* writeValueAsString(obj):将对象转为json字符串
*
*/
String json = mapper.writeValueAsString(p);
System.out.println(json);//{"name":"张三","age":22,"gender":"男"} //writeValue,将数据写到a.txt文件中
mapper.writeValue(new File("a.txt"),p); //writeValue.将数据关联到Writer中
mapper.writeValue(new FileWriter("b.txt"),p);
1234567891011121314151617181920212223242526272829303132

注解:

  1. @JsonIgnore :排除属性。
  2. @JsonFormat :属性值得格式化
    //JsonIgnore
@JsonFormat(pattern = "yyyy-MM-dd")
private Date bir;
123

List方式:

 //lIST集合
@Test
public void test2() throws Exception{
Person p2 = new Person();
p2.setName("张三");
p2.setAge(22);
p2.setGender("男");
p2.setBir(new Date()); //创建List集合
List<Person> ps = new ArrayList<Person>();
ps.add(p2); //2.转换
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(ps);
System.out.println(json);//[{"name":"张三","age":22,"gender":"男","bir":"2020-06-17"}]
}
123456789101112131415161718

Map方式:

@Test
public void test3() throws Exception{
Person p3 = new Person();
p3.setName("张三");
p3.setAge(22);
p3.setGender("男");
p3.setBir(new Date()); //创建map集合
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","李四");
map.put("age",22);
map.put("gender","男"); //2.转换
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(map);
System.out.println(json);//{"gender":"男","name":"李四","age":22}
} 123456789101112131415161718192021

JSON转为Java对象

使用readValue

    //json转java 字符串对象
@Test
public void test4() throws Exception{
//初始化json字符串
String json = "{\"gender\":\"男\",\"name\":\"李四\",\"age\":22}"; //创建ObjMapper对象
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
System.out.println(person);
}

参考文档

JSON数据和Java对象的相互转换的更多相关文章

  1. JSON数据与Java对象的相互转换

    JSON数据与Java对象的相互转换 JSON解析器 常见的解析器:Jsonlib .Gson. fastjson. jackson JSON转化为Java对象 使用步骤: 1.导入jackson的相 ...

  2. json字符串与java对象的相互转换(jackson)

    1.java对象转换为json字符串 package com.chichung.json; import com.fasterxml.jackson.core.JsonProcessingExcept ...

  3. 使用Gson转换json数据为Java对象的一个例子

    记录工作中碰到的一个内容. 原料是微信平台的一个接口json数据. { "errcode" : 0, "errmsg" : "ok", &q ...

  4. JSON解析器之jackson json数据和java对象转换

  5. Java中JSON字符串与java对象的互换实例详解

    这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...

  6. Java中JSON字符串与java对象的互换实例详解(转)

    http://www.jb51.net/article/90914.htm 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要 ...

  7. 用JAVA进行Json数据解析(对象数组的相互嵌套)

    这段时间我们在做一个英语翻译软件的小小小APP,涉及到了对Json数据的解析,所以特地来总结一下! 假设我们要对如下数据进行解析,其实在平时,返回的Json数据是很乱的,很难分清数据的关系,这是经过相 ...

  8. java json数据转List对象的集合-----阿里巴巴插件---及原生json---JSON 与 对象 、集合 之间的转换 JSON字符串和java对象的互转【json-lib】

    List<RunfastFullLess> list=(List<RunfastFullLess>)JSONArray.parseObject(activity.getFull ...

  9. 一种从JSON数据创建Java类的高效办法

    <一种从JSON数据创建Java类的高效办法> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs JSON格式的数据经常会遇到,比如调用Web服 ...

随机推荐

  1. ubuntu系统执行生成密匙命令后,home目录下面没有生成.ssh目录

    ubuntu系统配置git ssh时,执行:ssh-keygen -trsa -C "youremail@example.com",home目录下面没有生成.ssh目录. .ssh ...

  2. python学习笔记(十二)-网络编程

    本文结束使用 Requests 发送网络请求.requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到.可以说,Requests 完全满足如今网络的需求. ...

  3. SQL连接查询的执行顺序?

    sql和mysql执行顺序,发现内部机制是一样的.最大区别是在别名的引用上. 一.sql执行顺序 (1)from (2)on (3)join (4)where (5)group by(开始使用sele ...

  4. iNeuOS工业互联网操作系统部署在华为欧拉(openEuler)国产系统,vmware、openEuler、postgresql、netcore、nginx、ineuos一站式部署

    目       录 1.      概述... 3 2.      创建虚拟机&安装华为欧拉(openEuler)系统... 4 2.1           创建新的虚拟机... 4 2.2  ...

  5. 几分钟就能学会的Python虚拟环境教程

    什么是虚拟环境 我们在使用Python的时候,通常用pip来进行包管理.比如我们要安装一个叫requests的库,那么我们就会采用以下命令去安装: pip install requests 那你知道, ...

  6. HDFS 10 - HDFS 的联邦机制(Federation 机制)

    目录 1 - 为什么需要联邦 2 - Federation 架构设计 3 HDFS Federation 的不足 版权声明 1 - 为什么需要联邦 单 NameNode 的架构存在的问题:当集群中数据 ...

  7. Java网络爬虫技术《二》Jsoup

    Jsoup 当我们成功抓取到页面数据了之后,还需要对抓取的数据进行解析,而刚好,Jsoup 是一款专门解析 html 页面的技术.Jsoup是一款基于 Java 的HTML 解析器,可直接解析某个 U ...

  8. 洛谷3176 [HAOI2015]数字串拆分 (矩阵乘法+dp)

    qwq真的是一道好题qwq自己做基本是必不可能做出来的. 首先,如果这个题目只是求一个\(f\)数组的话,那就是一道裸题. 首先,根据样例 根据题目描述,我们能发现其实同样数字的不同排列,也是属于不同 ...

  9. 禅道开源版 Ldap认证插件开发

    禅道开源版-Ldap插件开发 背景 由于开源版无法使用ldap认证,所以在此分享一下自己开发禅道的ldap开发过程,希望对你有所帮助. 简单说一下这个插件的功能: 1.跳过原有禅道认证,使用ldap认 ...

  10. git GUI Clients

    git GUI Clients Git 自带用于提交 (git-gui) 和浏览 (gitk) 的内置 GUI 工具,但也有一些第三方工具供寻求特定平台体验的用户使用. References Git ...