Java对象与JSON数据的相互转换
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数据的相互转换相关推荐
- SpringMvc中将java对象转换为json数据的常用方式
目录 1.写回json数据,使用JSOD的方法吧java数据转换为Json数据 2.写回到json,使用@ResponsetBody注解的方式将返回的对象直接转化为json字符串 3.返回list类型 ...
- java对象与json对象间的相互转换的方法
String json=JSON.toJSONString(user);//关键 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如下. 1 JSON ...
- java对象与json对象间的相互转换
工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如 ...
- java处理json字符串_常见java对象转换为json字符串处理!!!
1.JSON简介 1. 概念: JavaScript Object NotationJavaScript对象表示法 Person p = new Person(); p.setName("张 ...
- Java对象转JSON时如何动态的增删改查属性
1. 前言 日常开发中少不了 JSON 处理,少不了需要在 JSON 中添加额外字段或者删除特定字段的需求.今天我们就使用Jackson类库来实现这个功能. 2. JSON 字符串增加额外字段 假如我 ...
- Java对象转换为Json对象
前言 曾几何时,XML是程序员的宠儿,是数据传输.API.AJAX应用等方面的不二选择,但自从JSON横空出世后,或者你会发觉你身边就有很多人开始抛弃XML,在他们的心目中,JSON已经完全取代了XM ...
- java对象转json格式
2019独角兽企业重金招聘Python工程师标准>>> 使用json-lib将java对象转换成json字符串 学会了在j2ee中使用ajax后,有时候从服务器返回客户端的数据是对象 ...
- jsp 将java对象转json对象 (自定义EL函数)
功能:在 jsp 页面将 java对象 转换为 json对象 (使用自定义EL函数实现) 步骤: 1. 创建 JSP EL 工具类 2. 创建 tld 文件 3. 配置 web.xml 文件 4. 完 ...
- java对象转Json学习
java对象转Json学习 json多用于数据存储.交换与传输,json相比于xml更小,更快,更容易解析 对象的表示方法 #java Person p = new Person(); p.setNa ...
- ajax写入json数据格式化,java ajax解析json数据格式化
java ajax解析json数据格式化 [2021-02-01 23:35:58] 简介: 服务器 hadoop格式化HDFS出现错误解决办法 报错信息: host:java.net.Unknow ...
最新文章
- 突然想自己做个平衡车了
- 小米手机安装https证书报错:无法安装该证书 因为无法读取该证书文件
- 静态链接中的那点事儿(1)
- 【深度学习】GPU选型调研!3090依旧是性价比之王
- Windows Phone 开发环境的搭建
- React Router入门指南
- 重构-改善既有的代码设计-------代码的坏味道
- mysql 线程id_查找MySQL线程中死锁的ID的方法
- CURL的学习和应用
- Postman 汉化教程
- 如何让paraview GUI软件启动时不弹出Welcome to paraview窗口
- 70.(cesium之家)cesium接入天地图影像与注记(经纬度)
- JavaScript -- Map数据结构
- 浅谈文件捆绑技术及实现方式
- 万字文肝Python基础知识
- NDT算法的匹配流程
- Java程序设计(二)
- Android studio中的警告Hardcoded text
- 平常心态过快乐的生活
- 如何查看.o和.exe文件