JSON解析器之Gson、FastJson、Jackson
Java物件與JSON相互轉換
JSON解析器:
常見的解析器:Jsonlib,Gson,fastjson,jackson
1.Gson解析器(谷歌)
最好使用最新jar包(百度搜尋Gson然後去GitHub上找,或者Maven上也有)
1. JSON轉為Java物件
- 1.引入JAR包
- 2.在需要轉換Java物件的位置, 編寫如下程式碼:
- 物件 = new Gson().fromJson(JSON字串,物件型別.class);
建立一個Student類:
public class Student {
private int id;
private String name;
private int age;
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 static void main(String[] args) {
//1. 建立Gson物件
Gson g = new Gson();
//2. 轉換
String str = "{\"id\":1,\"name\":\"馬保國\",\"age\":56}\n";
Student student = g.fromJson(str, Student.class);
System.out.println(student);
System.out.println("---------------------------");
//3.集合轉換
String str2 = "{\"id\":1,\"name\":\"馬保國\",\"age\":56,\"page\":[\"hello\",\"java\",\"hahaha\"]}\n";
HashMap data = g.fromJson(str2, HashMap.class);
List page = (List) data.get("page");//JSON中的陣列轉出來是ArrayList
System.out.println(page.get(1));
}
執行結果:
Student{id=1, name='馬保國', age=56}
----------------------------------
java
2.Java物件轉換JSON
-
1.引入JAR包
-
2.在需要轉換JSON字串的位置編寫如下程式碼即可:
- String json = new Gson().toJSON(要轉換的物件);
例項:
public static void main(String[] args) {
//1. 建立Gson物件
Gson g = new Gson();
//2. 轉換
Student student1 = new Student(1,"馬保國",56);
String str = g.toJson(student1);
System.out.println(str);
System.out.println("--------------------------------------------");
//3. 多個物件轉換
Student student2 = new Student(2,"盧本偉",28);
Student student3 = new Student(3,"蔡徐坤",15);
ArrayList<Student> students = new ArrayList<>();
students.add(student1);
students.add(student2);
students.add(student3);
String str2 = g.toJson(students);
System.out.println(str2);
}
執行結果:
{"id":1,"name":"馬保國","age":56}
--------------------------------------------
[{"id":1,"name":"馬保國","age":56},{"id":2,"name":"盧本偉","age":28},{"id":3,"name":"蔡徐坤","age":15}]
2. FastJson解析器(阿里)
最好使用最新jar包(百度搜尋Gson然後去GitHub上找,或者Maven上也有)
1. JSON轉為Java物件
- 1.引入JAR包
- 2.在需要轉換Java物件的位置, 編寫如下程式碼:
- 型別 物件名=JSON.parseObject(JSON字串, 型別.class);
- 或List<型別> list=JSON.parseArray(JSON字串,型別.class);
例項:
public class Demo4 {
public static void main(String[] args) {
String str = "{\"id\":1,\"name\":\"馬保國\",\"age\":56}";
Student student = JSON.parseObject(str, Student.class);
System.out.println(student);
}
}
執行截圖:
Student{id=1, name='馬保國', age=56}
2.Java物件轉換JSON
- 引入JAR包
- 在需要轉換JSON字串的位置編寫如下程式碼即可:
- String json=JSON.toJSONString(要轉換的物件);
例項:
public static void main(String[] args) {
Student student1 = new Student(1,"馬保國",56);
String str = JSON.toJSONString(student1);
System.out.println(str.length());
}
執行截圖:
{"id":1,"name":"馬保國","age":56}
注意:
FastJson是靠物件屬性的get、Set方法生成josn檔案的,沒有get、set方法無法生成
3. JackSon解析器
最好使用最新jar包(百度搜尋Gson然後去GitHub上找,或者Maven上也有)
1. JSON轉為Java物件
-
1.匯入jackson的相關jar包
-
2.建立Jackson核心物件 ObjectMapper
-
3.呼叫ObjectMapper的相關方法進行轉換
- readValue(json字串資料,Class)
2. Java物件轉換JSON
使用步驟:
- readValue(json字串資料,Class)
-
1.匯入jackson的相關jar包
-
2.建立Jackson核心物件 ObjectMapper
-
3.呼叫ObjectMapper的相關方法進行轉換
-
- 轉換方法:
writeValue(引數1,obj):
引數1:
File:將obj物件轉換為JSON字串,並儲存到指定的檔案中
Writer:將obj物件轉換為JSON字串,並將json資料填充到字元輸出流中
OutputStream:將obj物件轉換為JSON字串,並將json資料填充到位元組輸出流中
writeValueAsString(obj):將物件轉為json字串
- 轉換方法:
-
- 註解:
- @JsonIgnore:排除屬性。
- @JsonFormat:屬性值得格式化
@JsonFormat(pattern = “yyyy-MM-dd”)
- 註解:
-
- 複雜java物件轉換
- List:陣列
- Map:物件格式一致
- 複雜java物件轉換
-
相關文章
- FastJson、Jackson、Gson進行Java物件轉換Json的細節處理ASTJSONJava物件
- Android總結之json解析(FastJson Gson 對比)AndroidJSONAST
- Jackson Gson Json.simple 比較JSON
- json解析效能比較(gson與jackson)JSON
- fastJson和jackson轉json的區別ASTJSON
- Json解析之Gson庫JSON
- JSON 之FastJson解析JSONAST
- 關於Gson和FastJson的坑ASTJSON
- JSON 之FastJson遠端解析JSONAST
- JSON資料解析:Gson(谷歌)和fastjson(阿里巴巴)的異同點JSON谷歌AST阿里
- 淺談Gson和fastjson使用中的坑ASTJSON
- Java 下的 JSON庫效能比較:JSON.simple vs. GSON vs. Jackson vs. JSONPJavaJSON
- 如何使用JSON和GSONJSON
- JSON介紹及Android最全面解析方法(Gson、AS自帶org.son、Jackson解析)JSONAndroid
- SpringBoot中,使用 fastjson代替jacksonSpring BootASTJSON
- 除了FastJson,你還有選擇: Gson簡易指南ASTJSON
- Eclipse安裝GSON,使用GSON轉換Java Object到JSONEclipseJavaObjectJSON
- Json工具類----JacksonJSON
- android使用Gson來解析jsonAndroidJSON
- 生成JSON資料--Gson(谷歌)方法JSON谷歌
- Java Json API:Gson序列化JavaJSONAPI
- json 解析器哪家強?JSON
- 11 種序列化庫對比 DSL、fastjson、gson、jackson、protocol buffer、Thrift、Hession、Kryo、Fst、Messagepack、Jboss MarshalingASTJSONProtocol
- fastjson: json物件,json物件陣列,javabean物件,json字串之間的相互轉化ASTJSON物件陣列JavaBean字串
- JSON學習--com.alibaba.fastjson.JSONJSONAST
- fastjson 返回json字串,JSON.parse 報錯ASTJSON字串
- 手寫javascript json解析器JavaScriptJSON
- Android:用GSON 五招之內搞定任何JSON陣列AndroidJSON陣列
- Java Json API:Gson使用簡單入門JavaJSONAPI
- 生成JSON資料--fastjson(阿里)方法JSONAST阿里
- Java JSON處理類庫JacksonJavaJSON
- json與gson工具轉換案例及區別JSON
- fastjson字串轉JSON的$ref問題ASTJSON字串
- fastjson:物件轉化成json出現$refASTJSON物件
- 手寫Json解析器學習心得JSON
- 開源Json解析器的淺述JSON
- 除了FastJson,你也應該瞭解一下Jackson(一)ASTJSON
- 除了FastJson,你也應該瞭解一下Jackson(二)ASTJSON