Java學習之jackson篇
0x00 前言
本篇內容比較簡單,簡單記錄。
0x01 Json 概述
概述:JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制定的js規范)的一個子集,采用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網絡傳輸效率。
這里復制了一段百度百科的解釋,其實內容都可以用一句話來概括。
json主要用於數據交互,主要有鍵值對來表示。
而在Java里面需要解析json需要用到json的解析器。
0x02 jackson 解析器
在Java里面常見的json解析器有
Jsonlib,Gson,fastjson,jackson
那么這里拿jackson來進行演示。
常用方法
1. readValue(json字符串數據,Class) json轉換為java對象
2.writeValue(參數1,obj):
參數1:
File:將obj對象轉換為JSON字符串,並保存到指定的文件中
Writer:將obj對象轉換為JSON字符串,並將json數據填充到字符輸出流中
OutputStream:將obj對象轉換為JSON字符串,並將json數據填充到字節輸出流中
3.writeValueAsString(obj):將對象轉為json字符串
注解:
1. @JsonIgnore:排除屬性。
2. @JsonFormat:屬性值得格式化
對象轉Json
這里還需要定義一個實體類,這里就不寫了。
package com.test.domain;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class jsonDemo {
public static void main(String[] args) {
Person person = new Person();
person.setName("xiaoming");
person.setSex("name");
person.setAge(18);
ObjectMapper objectMapper = new ObjectMapper();
try {
String s = objectMapper.writeValueAsString(person);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
顯示數據:
{"name":"xiaoming","age":18,"sex":"name"}
list集合轉換json
package com.test.domain;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.List;
public class jsonDemo {
public static void main(String[] args) {
Person p1= new Person();
p1.setName("xiaoming");
p1.setSex("name");
p1.setAge(18);
Person p2= new Person();
p2.setName("xiaoming");
p2.setSex("name");
p2.setAge(18);
ObjectMapper objectMapper = new ObjectMapper();
List<Person> list = new ArrayList<>();
list.add(p1);
list.add(p2);
try {
String s = objectMapper.writeValueAsString(list);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
json轉Java對象
package com.test.domain;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class jsonDemo {
public static void main(String[] args) throws IOException {
String json = "{\"sex\":\"男\",\"age\":\"18\",\"name\":\"xiaoming\"}";
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(json, Person.class);
System.out.println(person.toString());
}
}
0x03 結尾
后面准備開始更新Java框架內容。