我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java中如何使用Jackson

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java中如何使用Jackson

这篇文章将为大家详细讲解有关Java中如何使用Jackson,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

序列化

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

Json是什么?

Jason是 JavaScript Object Notation— JavaScript对象表示法,是一种轻量级数据交换格式。主要用于数据传输,比如说在后端写了一个Java对象,想在其他地方(前端)使用这个对象,就需要转换为Json这种形式进行传输。

1.基本规则

数据在名称/值对中:json数据是由键值对构成的

值用引号引起来,也可以不使用引号

值的取值类型: 数字、字符串、布尔值、数组(如{"persons":[{},{},{}]})、对象、null

数据用逗号分隔:多个键值对由逗号分隔

方括号保存数组:[]

花括号保存对象:使用{}定义json格式

2.获取数据

json对象.键名

json对象["键名"]

数组对象[索引]

遍历

3.用途

以某种存储形式使自定义对象持久化;

将对象从一个地方传递到另一个地方。

使程序更具维护性。

Jackson

Java生态圈中有很多处理JSON和XML格式化的类库, 常见的解析器:Jsonlib,Gson,fastjson,Jackson。Jackson是其中比较著名的一个,也比较方便。,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换,下面给出一些Jackson的JSON操作方法。

1.导入Jar包

2.Json注解

@JsonIgnore 此注解用于属性上,作用是进行JSON操作时忽略该属性。

@JsonFormat 此注解用于属性上,作用是把Date类型直接转化为想要的格式,如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")。

@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty("name")。

public class Person {   private String name;  private int age;   @JsonProperty("gender")  private String gender;   // @JsonIgnore//忽略该属性,不进行转换  @JsonFormat(pattern = "yyyy-MM-dd")  private Date birthday;   public Date getBirthday() {    return birthday;  }   public void setBirthday(Date birthday) {    this.birthday = birthday;  }   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 + '\'' +        '}';  }}

3.Json转为Java对象

导入Jackson的相关jar包

创建Jackson的核心对象,ObjectMapper

调用ObjectMapper的相关方法进行数据转换——将Json字符串转换为Java对象

readValue(json字符串数据,类.Class)

//将Json字符串转为Java对象  @Test  public void test5() throws Exception{    //json字符串    String str="{\"gender\":\"男\",\"name\":\"zhangsan\",\"age\":23}";    //Jackson核心对象    ObjectMapper mapper = new ObjectMapper();    //使用readValue方法进行转换    Person person = mapper.readValue(str, Person.class);    System.out.println(person);  }

4.Java对象转换Json

导入Jackson的相关jar包

创建Jackson的核心对象,ObjectMapper

调用ObjectMapper的相关方法进行数据转换——将Java对象转换为Json

writeValue(参数,obj对象)

参数:File:将obj对象转换为JSON字符串,并保存到指定的文件中

参数:Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中

参数:OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中

writeValueAsString(obj):将对象转为json字符串(常用)

 //Java对象转Json  @Test  public void test1() throws IOException {     //1.创建Java对象    Person p=new Person();    p.setName("张三");    p.setAge(23);    p.setGender("男");     //2.创建Jackson对象 ObjectMapper    ObjectMapper mapper=new ObjectMapper();    //3.转换为JSOn    String json = mapper.writeValueAsString(p);    System.out.println(json);    mapper.writeValue(new File("d:\\jaon.txt"),json);    mapper.writeValue(new FileWriter("d:\\json.txt"),json);  }    @Test  public void test2() throws JsonProcessingException {     //1.创建Java对象    Person p = new Person();    p.setName("张三");    p.setAge(23);    p.setGender("男");    p.setBirthday(new Date());    //2.创建Jackson对象 ObjectMapper    ObjectMapper mapper = new ObjectMapper();    //3.转换为JSOn    String json = mapper.writeValueAsString(p);    System.out.println(json);  }    @Test  public void test3() throws Exception {    //复杂格式的转换:list    //1.创建Java对象    Person p1 = new Person();    p1.setName("张三");    p1.setAge(23);    p1.setGender("男");    p1.setBirthday(new Date());     Person p2 = new Person();    p2.setName("张三");    p2.setAge(23);    p2.setGender("男");    p2.setBirthday(new Date());     List<Person> list=new ArrayList<>();    list.add(p1);    list.add(p1);      //2.创建Jackson对象 ObjectMapper    ObjectMapper mapper = new ObjectMapper();    //3.转换为JSOn    String json = mapper.writeValueAsString(list);    System.out.println(json);//[{"name":"张三","age":23,"gender":"男","birthday":"2021-03-19"},{"name":"张三","age":23,"gender":"男","birthday":"2021-03-19"}]   }   @Test  public void  test4() throws Exception{    //复杂格式的转换Map    //1.创建map对象    Map<String,Object> map=new HashMap<>();    map.put("name","zhangsan");    map.put("age",23);    map.put("gender","男");    //2.创建Jackson对象 ObjectMapper    ObjectMapper mapper = new ObjectMapper();    //3.转换为JSOn    String json = mapper.writeValueAsString(map);    System.out.println(json);//{"gender":"男","name":"zhangsan","age":23}  }

关于“Java中如何使用Jackson”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java中如何使用Jackson

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java中如何使用Jackson

这篇文章将为大家详细讲解有关Java中如何使用Jackson,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。序列化序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在
2023-06-14

java中jackson的作用是什么

在Java中,Jackson是一个用于JSON处理的库,主要用于将Java对象与JSON数据进行互相转换。它提供了一组用于序列化(将Java对象转换为JSON字符串)和反序列化(将JSON字符串转换为Java对象)的工具和API。Jacks
java中jackson的作用是什么
2024-03-05

JSON中的fastjson、jackson、gson该如何选择

这篇文章给大家介绍JSON中的fastjson、jackson、gson该如何选择,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JSON具有表达简洁、层级清晰的特点,目前广泛应用在数据的通信传输中,尤其前后端的交互,几
2023-06-22

Java中WeakHashMap如何使用

Java中WeakHashMap如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. WeakHashMap类概述WeakHashMap 是一个基于Hash表的Map
2023-06-04

Java中Unsafe如何使用

Java中Unsafe如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Unsafe介绍Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安
2023-06-15

Java中Enum如何使用

今天就跟大家聊聊有关Java中Enum如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。示例:public enum EnumTest { FRANK("The gi
2023-06-17

Java中PrintWriter如何使用

这篇文章主要介绍“Java中PrintWriter如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java中PrintWriter如何使用”文章能帮助大家解决问题。简介PrintWriter
2023-07-02

Java中bean如何使用

今天就跟大家聊聊有关Java中bean如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。bean 的生命周期对象创建实例化Bean对象,默认选择无参构造方法,如果只有一个有参构造
2023-06-20

java中equals如何使用

在Java中,`equals`方法是用于比较两个对象是否相等的方法。一般来说,如果我们想要比较自定义的类的对象是否相等,需要重写`equals`方法。重写`equals`方法一般需要遵循以下几个步骤:1. 检查传入的参数是否为`null`,
2023-08-23

Java中final如何使用

这篇“Java中final如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java中final如何使用”文章吧。一、理
2023-06-30

Java中JDBC如何使用

本篇内容介绍了“Java中JDBC如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概念Java DataBase Connectivi
2023-07-02

java中return如何使用

在Java中,return 用于将值或引用从方法返回给调用者。return 语句可以在任何方法体中使用。下面是一些 return 语句的使用示例:1. 返回值类型为 void 的方法:```javapublic void printMess
2023-10-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录