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

文章目录

  • Java对象与JSON数据的相互转换
  • 一、Java对象转JSON
    • 基本使用
    • 注解使用
  • 二、JSON转为Java对象
    • 使用步骤

一、Java对象转JSON

一般Java对象与JSON的相互转换都使用JSON解析器来完成。 常见的JSON解析器有:Jsonlib,Gson,fastjson,jackson。 这里我们使用的是jackson解析器。

基本使用

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

创建Java对象用于测试:

public class Person {private String name;private int age;private String gender;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;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +'}';}
}

转换Java对象为JSON:

    @Testpublic void test1() throws JsonProcessingException {//1.创建Person对象Person p = new Person();p.setName("张三");p.setAge(18);p.setGender("男");//2.创建jackson的核心对象  ObjectMApperObjectMapper mapper = new ObjectMapper();//3.转换String json = mapper.writeValueAsString(p);System.out.println(json);}

效果如下:

转换方法:
writeValueAsString(obj):将对象转为json字符串(如上所述)
writeValue(参数1,obj):
参数1:
File:将obj对象转换为JSON字符串,并保存到指定的文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
事例如下:

         //writeValue,将数据写到桌面mapper.writeValue(new File("/Users/XXX/Desktop/a.txt"),p);

效果如下:

     //writeValue.将数据关联到Writer中mapper.writeValue(new FileWriter("/Users/xxx/Desktop/b.txt"),p);

效果如下:

注解使用

Java对象转JSON时,有些情况需要用到注解辅助格式的转换,下面是最常见的两种注解

1. @JsonIgnore:排除属性。
2. @JsonFormat:属性值得格式化
格式为: @JsonFormat(pattern = “yyyy-MM-dd”)

在上面的Java对象中添加一个属性birthday,并添加get,set方法:

import java.util.Date;public class Person {private String name;private int age;private String gender;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;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +'}';}
}

再使用上述方法转换JSON时:

@Testpublic void test2() throws Exception {//1.创建Person对象Person p = new Person();p.setName("张三");p.setAge(18);p.setGender("男");p.setBirthday(new Date());//2.创建jackson的核心对象  ObjectMApperObjectMapper mapper = new ObjectMapper();//3.转换String json = mapper.writeValueAsString(p);System.out.println(json);  }

结果如下:

日期格式表现为时间毫秒值,所以需要使用注解进行转换。

在属性或者get方法上面添加注解@JsonIgnore;则会忽略该属性。

 @JsonIgnoreprivate Date birthday;

效果

在属性或者get方法上面添加注解@JsonFormat;则会转为特定的格式:

@JsonFormat(pattern = "yyyy-MM-dd")private Date birthday;

二、JSON转为Java对象

使用步骤

1. 导入jackson的相关jar包
2. 创建Jackson核心对象 ObjectMapper
3. 调用ObjectMapper的相关方法进行转换
* readValue(json字符串数据,Class)

//演示 JSON字符串转为Java对象@Testpublic void test5() throws Exception {//1.初始化JSON字符串String json = "{\"gender\":\"男\",\"name\":\"张三\",\"age\":23}";//2.创建ObjectMapper对象ObjectMapper mapper = new ObjectMapper();//3.转换为Java对象 Person对象Person person = mapper.readValue(json, Person.class);System.out.println(person);}

效果如下:

Java对象与JSON数据的相互转换相关推荐

  1. SpringMvc中将java对象转换为json数据的常用方式

    目录 1.写回json数据,使用JSOD的方法吧java数据转换为Json数据 2.写回到json,使用@ResponsetBody注解的方式将返回的对象直接转化为json字符串 3.返回list类型 ...

  2. java对象与json对象间的相互转换的方法

    String json=JSON.toJSONString(user);//关键 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如下. 1 JSON ...

  3. java对象与json对象间的相互转换

    工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如 ...

  4. java处理json字符串_常见java对象转换为json字符串处理!!!

    1.JSON简介 1. 概念: JavaScript Object NotationJavaScript对象表示法 Person p = new Person(); p.setName("张 ...

  5. Java对象转JSON时如何动态的增删改查属性

    1. 前言 日常开发中少不了 JSON 处理,少不了需要在 JSON 中添加额外字段或者删除特定字段的需求.今天我们就使用Jackson类库来实现这个功能. 2. JSON 字符串增加额外字段 假如我 ...

  6. Java对象转换为Json对象

    前言 曾几何时,XML是程序员的宠儿,是数据传输.API.AJAX应用等方面的不二选择,但自从JSON横空出世后,或者你会发觉你身边就有很多人开始抛弃XML,在他们的心目中,JSON已经完全取代了XM ...

  7. java对象转json格式

    2019独角兽企业重金招聘Python工程师标准>>> 使用json-lib将java对象转换成json字符串 学会了在j2ee中使用ajax后,有时候从服务器返回客户端的数据是对象 ...

  8. jsp 将java对象转json对象 (自定义EL函数)

    功能:在 jsp 页面将 java对象 转换为 json对象 (使用自定义EL函数实现) 步骤: 1. 创建 JSP EL 工具类 2. 创建 tld 文件 3. 配置 web.xml 文件 4. 完 ...

  9. java对象转Json学习

    java对象转Json学习 json多用于数据存储.交换与传输,json相比于xml更小,更快,更容易解析 对象的表示方法 #java Person p = new Person(); p.setNa ...

  10. ajax写入json数据格式化,java ajax解析json数据格式化

    java ajax解析json数据格式化 [2021-02-01 23:35:58]  简介: 服务器 hadoop格式化HDFS出现错误解决办法 报错信息: host:java.net.Unknow ...

最新文章

  1. 突然想自己做个平衡车了
  2. 小米手机安装https证书报错:无法安装该证书 因为无法读取该证书文件
  3. 静态链接中的那点事儿(1)
  4. 【深度学习】GPU选型调研!3090依旧是性价比之王
  5. Windows Phone 开发环境的搭建
  6. React Router入门指南
  7. 重构-改善既有的代码设计-------代码的坏味道
  8. mysql 线程id_查找MySQL线程中死锁的ID的方法
  9. CURL的学习和应用
  10. Postman 汉化教程
  11. 如何让paraview GUI软件启动时不弹出Welcome to paraview窗口
  12. 70.(cesium之家)cesium接入天地图影像与注记(经纬度)
  13. JavaScript -- Map数据结构
  14. 浅谈文件捆绑技术及实现方式
  15. 万字文肝Python基础知识
  16. NDT算法的匹配流程
  17. Java程序设计(二)
  18. Android studio中的警告Hardcoded text
  19. 平常心态过快乐的生活
  20. 如何查看.o和.exe文件

热门文章

  1. D1,4CIF,CIF,QCIF各代表的分辨率大小
  2. oracle循环视频教程,Oracle高清视频课程全45集,赶紧收藏吧!
  3. Java 报表工具选择
  4. 数据结构课程设计(二)---算术表达式求值
  5. PLC编程需注意的地方
  6. java ee jsp程序_JavaEE程序设计及项目开发教程(JSP篇)
  7. 教学案例 计算机,计算机教学案例
  8. Java源码阅读神器之Translation翻译插件
  9. 烧录工具Android Tool的使用
  10. 不懂自学还想去大厂?快醒醒吧!