电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

詳解Java-Jackson使用

瀏覽:88日期: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
相關文章:
主站蜘蛛池模板: 塑胶跑道施工-硅pu篮球场施工-塑胶网球场建造-丙烯酸球场材料厂家-奥茵 | 深圳宣传片制作-企业宣传视频制作-产品视频拍摄-产品动画制作-短视频拍摄制作公司 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 金属管浮子流量计_金属转子流量计厂家-淮安润中仪表科技有限公司 | 馋嘴餐饮网_餐饮加盟店火爆好项目_餐饮连锁品牌加盟指南创业平台 | 横河变送器-横河压力变送器-EJA变送器-EJA压力变送器-「泉蕴仪表」 | 立式矫直机_卧式矫直机-无锡金矫机械制造有限公司 | 旗杆生产厂家_不锈钢锥形旗杆价格_铝合金电动旗杆-上海锥升金属科技有限公司 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 加热制冷恒温循环器-加热制冷循环油浴-杭州庚雨仪器有限公司 | 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 成都中天自动化控制技术有限公司 | 二氧化碳/活性炭投加系统,次氯酸钠发生器,紫外线消毒设备|广州新奥 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 铁素体测量仪/检测仪/铁素体含量测试仪-苏州圣光仪器有限公司 | 二手回收公司_销毁处理公司_设备回收公司-找回收信息网 | 细石混凝土泵_厂家_价格-烟台九达机械有限公司 | 传动滚筒_厂家-淄博海恒机械制造厂 | DWS物流设备_扫码称重量方一体机_快递包裹分拣机_广东高臻智能装备有限公司 | 火锅加盟_四川成都火锅店加盟_中国火锅连锁品牌十强_朝天门火锅【官网】 | 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 |