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. 『GoLang』面向对象

    我们总结一下前面看到的:Go 没有类,而是松耦合的类型.方法对接口的实现. 面向对象语言最重要的三个方面分别是:封装,继承和多态,在 Go 中它们是怎样表现的呢? Go实现面向对象的两个关键是stru ...

  2. 『GoLang』控制结构

    条件语句 if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行if后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码. if condition { // do so ...

  3. 电商管理后台 API 接口文档

    1. 电商管理后台 API 接口文档 1.1. API V1 接口说明 接口基准地址:http://127.0.0.1:8888/api/private/v1/ 服务端已开启 CORS 跨域支持 AP ...

  4. kubectl 的插件管理工具krew

    k8s的命令行工具kubectl 对于玩k8s 的人来说是必备工具.kubectl插件机制在Kubernetes 1.14宣布稳定,进入GA状态.kubectl的插件机制就是希望允许开发者以独立的二进 ...

  5. 使用Dom4j、反射自定义实现xml与java对象互转

    一.前言 国庆假期临近,工作动力不强.所以写几篇之前项目中自己用到的一些可能有用的东西分享出来. 今天分享的是Xml与javaBean互转的自定义实现. 先说几种我知道的Xml与javaBean互转的 ...

  6. Spring源码之创建AOP代理之增强器的获取

    前言 在上一篇博文中我们说到了通过自定义配置完成了对AnnotationAwareAspectJAutoProxyCreator类型的自动注册,那么这个类究竟做了什么工作从而完成AOP的操作呢?首先我 ...

  7. NOIP 模拟 六十八

    咕了十几场了,还是写一写吧.. T1 玩水 发现满足三个人路径不同必须要有2个及以上的斜线相同结构,需要注意如果同一行或者同一列的话必须要相邻才行. #include<bits/stdc++.h ...

  8. python 包(package)和模块(module)的创建和引入(import)

    python 包(package)和模块(module)的创建和引入(import) 名词解释 实际上,Python中的函数(Function).类(Class).模块(Module).包库(Pack ...

  9. DDD领域驱动设计落地实践(十分钟看完,半小时落地)

    一.引子 不知今年吹了什么风,忽然DDD领域驱动设计进入大家视野.该思想源于2003年 Eric Evans编写的"Domain-Driven Design领域驱动设计"简称DDD ...

  10. Python读取网页表格数据

    学会了从网格爬取数据,就可以告别从网站一页一页复制表格数据的时代了. 说个亲身经历的事: 以前我的本科毕业论文是关于"燃放烟花爆竹和空气质量"之间关系的,就要从环保局官网查资料. ...