javascript
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. 創(chuàng)建Jackson核心對象 ObjectMapper
3. 調用ObjectMapper的相關方法進行轉換
創(chuàng)建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.創(chuàng)建Person對象Person p = new Person();p.setName("張三");p.setAge(18);p.setGender("男");//2.創(chuàng)建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數據填充到字節(jié)輸出流中
事例如下:
效果如下:
效果如下:
注解使用
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.創(chuàng)建Person對象Person p = new Person();p.setName("張三");p.setAge(18);p.setGender("男");p.setBirthday(new Date());//2.創(chuàng)建jackson的核心對象 ObjectMApperObjectMapper mapper = new ObjectMapper();//3.轉換String json = mapper.writeValueAsString(p);System.out.println(json); }結果如下:
日期格式表現為時間毫秒值,所以需要使用注解進行轉換。
在屬性或者get方法上面添加注解@JsonIgnore;則會忽略該屬性。
@JsonIgnoreprivate Date birthday;效果
在屬性或者get方法上面添加注解@JsonFormat;則會轉為特定的格式:
二、JSON轉為Java對象
使用步驟
1. 導入jackson的相關jar包
2. 創(chuàng)建Jackson核心對象 ObjectMapper
3. 調用ObjectMapper的相關方法進行轉換
* readValue(json字符串數據,Class)
效果如下:
總結
以上是生活随笔為你收集整理的Java对象与JSON数据的相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python+selenium_浏览器引
- 下一篇: JSON转换为对象