日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發(fā)布時間:2023/12/10 javascript 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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é)輸出流中
事例如下:

//writeValue,將數據寫到桌面mapper.writeValue(new File("/Users/XXX/Desktop/a.txt"),p);

效果如下:

//writeValue.將數據關聯(lián)到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.創(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;則會轉為特定的格式:

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

二、JSON轉為Java對象

使用步驟

1. 導入jackson的相關jar包
2. 創(chuàng)建Jackson核心對象 ObjectMapper
3. 調用ObjectMapper的相關方法進行轉換
* readValue(json字符串數據,Class)

//演示 JSON字符串轉為Java對象@Testpublic void test5() throws Exception {//1.初始化JSON字符串String json = "{\"gender\":\"男\(zhòng)",\"name\":\"張三\",\"age\":23}";//2.創(chuàng)建ObjectMapper對象ObjectMapper mapper = new ObjectMapper();//3.轉換為Java對象 Person對象Person person = mapper.readValue(json, Person.class);System.out.println(person);}

效果如下:

總結

以上是生活随笔為你收集整理的Java对象与JSON数据的相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。