色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

詳解Java-Jackson使用

瀏覽:82日期:2022-08-15 13:31:57
序列化

序列化 (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使用詳解的文章就介紹到這了,更多相關Java-Jackson使用詳解內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 久久国产精品久久 | 国产成人精品高清在线 | 广东毛片| 中文字幕在线精品 | 免费观看国产精品 | 欧美国产成人精品一区二区三区 | 日韩一区二区三区不卡视频 | 免费播放欧美毛片欧美a | 欧美视频在线观看网站 | 成人欧美一区二区三区黑人 | 亚洲一级片免费看 | 韩国一级淫片视频免费播放 | 久久香蕉国产视频 | 亚洲国产成人久久综合碰 | 国产成人精品亚洲77美色 | 在线观看亚洲免费 | 国产精品一区二区三区久久 | 三级全黄的全黄三级三级播放 | 男女视频免费观看 | 一级做a爰性色毛片 | 成人18视频在线观看 | 精品视频一区二区三区在线观看 | 国产精品久久久久久久免费 | 成人综合网址 | 精品国产看高清国产毛片 | 鸥美性生交xxxxx久久久 | 久久国产精品-久久精品 | 国产三级中文字幕 | 成人永久福利在线观看不卡 | 日日摸人人拍人人澡 | 欧美三级做爰视频 | 欧美在线综合 | 中国一级特黄视频 | 国产99精品一区二区三区免费 | 在线观看 国产 | 久久午夜视频 | 色偷偷亚洲女人天堂观看欧 | 欧美日韩一区在线观看 | 精品国产一区二区三区成人 | 亚洲自偷| 看一级毛片 |