• 一、Java对象 ⇒ JSON

    • 1.1 转换方式
    • 1.2 注解使用
    • 1.3 普通对象转换
    • 1.4 复杂Java对象转换
  • 二、JSON ⇒ Java对象
    • 2.1 JSON转换为Java对象
    • 2.2 JSON转换为Java集合对象

创建Person.java类,实现setter、getter方法,此处不在赘述。

一、Java对象 ⇒ JSON

1.1 转换方式

首先创建转换对象ObjectMapper

ObjectMapper mapper = new ObjectMapper();

该对象主要有两个转换方法
第一种方式:将对象转为json字符串:

String json = mapper.writeValueAsString(p1);

输出结果

{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:1553666950369}

第二种方式:

mapper.writeValue(参数1,p1);

关于参数1
File:将obj对象转换为json字符串,并保存到指定的文件中
Write:将obj对象转换为json字符串,并将json填充到字符输出流中
OutputStream:将obj对象转换为json字符串,并将json填充到字节输出流中

比如:
将JSON字符串数据写入到test.txt文件中:

mapper.writeValue(new File("/Users//Desktop/test.txt"), p1);

1.2 注解使用

@JsonIgnore:排除属性

@JsonIgnore
private Date birthday;

转换最终的JSON字符串中,不会有birthday键值对。

@JsonFormat:属性值格式化

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthday;

转换结果:

{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:23:33”}

1.3 普通对象转换

见1.1

1.4 复杂Java对象转换

List集合转换为JSON字符串:

ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(list);
System.out.println(json);

输出结果:

[{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:25:23”},{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:25:23”},{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:25:23”}]

Map集合转换为JSON字符串

public void test4() throws Exception {Person p1 = new Person();p1.setName("Alex");p1.setAge(21);p1.setGender("男");p1.setBirthday(new Date());// 创建JavaBean对象Map<String, Object> map = new HashMap<String, Object>();
//        map.put("name", "Alex");
//        map.put("age", "1111");
//        map.put("gender", "xxx");map.put("k1", p1);map.put("k2", p1);map.put("k3", p1);// 转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(map);System.out.println(json);
}

输出结果:

{“k1”:{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:30:08”},“k2”:{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:30:08”},“k3”:{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:30:08”}}

二、JSON ⇒ Java对象

2.1 JSON转换为Java对象

String json = "{\"name\":\"Alex\",\"age\":21,\"gender\":\"男\",\"birthday\":\"2019-03-27 06:01:54\"}";
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
System.out.println(person);

2.2 JSON转换为Java集合对象

String json = "[{\"name\":\"Alex\",\"age\":21,\"gender\":\"男\",\"birthday\":\"2019-03-27 06:01:54\"}," +"       {\"name\":\"Alex\",\"age\":21,\"gender\":\"男\",\"birthday\":\"2019-03-27 06:01:54\"}," +"       {\"name\":\"Alex\",\"age\":21,\"gender\":\"男\",\"birthday\":\"2019-03-27 06:01:54\"}]\n";ObjectMapper mapper = new ObjectMapper();
List<Person> list = mapper.readValue(json, new TypeReference<List<Person>>() {});
for (Person p : list) {System.out.println(p);
}

输出结果:

Person{name=‘Alex’, age=21, gender=‘男’, birthday=Wed Mar 27 14:01:54 CST 2019}
Person{name=‘Alex’, age=21, gender=‘男’, birthday=Wed Mar 27 14:01:54 CST 2019}
Person{name=‘Alex’, age=21, gender=‘男’, birthday=Wed Mar 27 14:01:54 CST 2019}

Jackjson使用相关推荐

  1. JackJson 使用记录

    Map<String,Object> map= new HashMap();map.put("ssss","sadsad");// 定义JackJs ...

  2. fastJson、JackJson以及Gson序列化对象与get、set以及对象属性之间的关系

    众所周知,平时开发过程中将对象序列化成json字符串常用的工具类一般就三种:fastJson.Gson.Jackjson,但是三种工具类在将对象进行序列化时与对象的get.set.对象属性之间的关系你 ...

  3. jackson 驼峰注解_springboot jackjson驼峰转下划线

    有如下几种方法 1.通过ObjectMapper设置 mapper.setPropertyNamingStrategy(com.fasterxml.jackson.databind.PropertyN ...

  4. 使用JackJSON 流式API 创建JSON串【学习记录】

    教程网址:Jackson流式API 目标JSON串 原始JSON串 核心代码 思路:先将原始JSON串生成对应的对象,获取到其数据 package com.run.runlpwebdemo.utils ...

  5. 关于JackJson接收前端UTC格式化报错SON parse error: Cannot deserialize value of type `java.util.Date` from String

    #解决方式 在格式化的字段上加上注解 @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",timezone = "G ...

  6. JackJson解析json的字符串格式

    从前台获取了一个xml,然后解析xml的属性的时候,其属性值是一个json的String类型.所以在解析json的时候,给出的问题是: 1,不管什么对象类型,根据json的构造,根据的key值,去取对 ...

  7. ssh框架jackjson升级

    运维ssh框架老项目,存在Jackson-databind任意文件读取漏洞, CVE编号: CVE-2020-8840 影响版本: 2.x Jackson-databind < 2.9.10.3 ...

  8. Java json转Map,转bean,转Listbean

    引用jackson /** * json转Map,转bean,转List<bean> by http://blog.csdn.net/21aspnet/ * 需要jackjson jar包 ...

  9. controller是什么意思_光谈理论有什么意思,附源码带大家实操SpringBoot

    什么是Spring boot Spring boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.(自动定义了一些配置) spring boot其 ...

最新文章

  1. 招银网络笔试java_2020招银网络科技校园招聘常见问题
  2. python环境_python环境搭建教程
  3. java掌握_掌握Java 11的Constantdynamic
  4. HTTP(1)---HTTP 工作原理
  5. 三、Java基础工具(1)_常用类——数学相关类
  6. combox简单用法
  7. OpenCasCade – 贴纹理
  8. 30+免费快速启动工具软件下载
  9. React.js 小书 阅读笔记3
  10. wps 云服务器登录_WPS云服务使用协议
  11. pythonhistogram教程_Plot Histogram in Python
  12. scala当中的文件操作、网络请求和隐式转换
  13. 基于Ubuntu20.04运行OP-TEE_3.17.0_QEMU_V8的环境搭建
  14. 红米AX6S路由器刷OpenWrt固件,实现软路由功能,科学-上网-网速度起飞
  15. 护眼灯的标准是什么?护眼台灯国家标准给你答案
  16. mac安装配置maven
  17. Linux 内核协议栈的 TSO、GSO
  18. 关于ASMM和AMM
  19. java8个基本类型
  20. AV终结者病毒大全及防范

热门文章

  1. redis-集群安装(2)变两重冗余为三重
  2. 微信扫码点餐小程序之《扫码功能的实现》2020/03/05
  3. 中文字体在 CSS 中的写法
  4. 在线刷题题库微信小程序开发制作功能介绍
  5. 系统无法修改时间和日期解决办法
  6. 淘宝客参数spm,就是指通过这个技术跟踪推广的商品订单
  7. 字王x2ttf字库制作软件发布:“全民造字时代来临,会涂鸦,就会truetype”
  8. AfterEffect插件-常规功能开发-改变渲染输出位置-js脚本开发-AE插件
  9. RK3126-4.4SDK修改电池百分比
  10. 高德地图发布中国高速公路出行大数据报告:2017年假期高速拥堵里程同比2016上升22.5%