Kiến thức

Làm việc với Gson trong Java 01 tháng 03, 2022 – 154 lượt xem Java căn bản Java nâng cao JSON Java Đầu mục bài viết Bài viết liên quan Khoá học hay

Google Gson là 1 thư viện Java cung ứng xử lý JSON (Biến đổi 1 chuỗi JSON thành 1 nhân vật Java hoặc trái lại).

Ngoài Gson, có rất nhiều thư viện khác cung ứng xử lý Json như Json-simple, Jackson, json.org,… Không những thế, có 1 số lý do nhưng bạn nên sử dụng thư viện này:

  • Chuẩn hóa: Gson là 1 thư viện chuẩn hóa do Google điều hành
  • Hiệu quả: Đây là 1 phần mở mang đáng tin tưởng, mau chóng và hiệu quả cho thư viện chuẩn Java
  • Tối ưu hóa: Thư viện được tối ưu hóa cao
  • Cung cấp thuốc generic: Nó phân phối cung ứng phổ biến cho thuốc generic
  • Cung cấp các lớp phức tạp: Nó cung ứng các nhân vật phức tạp với hệ thống phân cấp kế thừa thâm thúy

Hiện giờ chúng ta hãy xem cách sử dụng thư viện này:

Setup Gson. thư viện

Để thiết đặt thư viện Gson chúng ta có các cách sau:

  • Sử dụng Maven:
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.9.0</version>
</dependency>

  • Sử dụng Gradle:
// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation group: 'com.google.code.gson', name: 'gson', version: '2.9.0'

Biến đổi giữa JSON và Java Object

Biến đổi từ Object sang Json

Thí dụ, tôi có lớp sau:

public class Person {
    private String name;
    private int age;
    private String address;

    public Person(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String toString() {
        return name + " - " + age + " - " + address;
    }
}

Tiếp theo, để có thể sử dụng các phương thức của Gson, chúng ta cần tạo 1 nhân vật Gson. Để biến đổi 1 nhân vật thành JSON, hãy sử dụng. bí quyết toJson()

import com.google.gson.Gson;

public class Main {
    public static void main(String[] args) {
        //Tạo nhân vật Gson
        Gson gson = new Gson();
        Person person = new Person("Ngọc", 5, "Hà Giang");

        //Biến đổi từ Object sang JSON
        String result = gson.toJson(person);
        System.out.println(result);
    }
}

Kết quả thu được:

{"name":"Ngọc","age":5,"address":"Hà Giang"}

Biến đổi từ JSON sang nhân vật

Để biến đổi từ JSON sang Object, chúng ta cũng cần tạo 1 nhân vật Gson và sử dụng fromJson() để biến đổi

import com.google.gson.Gson;

public class Main {
    public static void main(String[] args) {
        //Tạo nhân vật Gson
        Gson gson = new Gson();

        //Biến đổi từ JSON sang Object
        String json = "{"name":"Linh","age":8,"address":"Hà Nội"}";
        Person newPerson = gson.fromJson(json, Person.class);
        System.out.println(newPerson);
    }
}

Kết quả:

Linh - 8 - Hà Nội

Biến đổi giữa JSON và mảng

Biến đổi từ JSON sang mảng

Giả thử tôi có 1 tệp JSON như thế này:

[{
"name": "Jimmy Buncom",
"age": 30,
"address": "Indonesia"
}, {
"name": "Lucille Pollastrone",
"age": 24,
"address": "Poland"
}, {
"name": "Hort Tall",
"age": 15,
"address": "Indonesia"
}, {
"name": "Ruprecht Plampeyn",
"age": 21,
"address": "China"
}, {
"name": "Erhard Liles",
"age": 26,
"address": "Dominican Republic"
}, {
"name": "Fremont Murrow",
"age": 20,
"address": "North Korea"
}]

import com.google.gson.Gson;

import java.io.FileNotFoundException;
import java.io.FileReader;

public class Main {
    public static void main(String[] args) {

        //Tạo nhân vật Gson
        Gson gson = new Gson();

        //Biến đổi từ JSON sang mảng
        Person[] persons = null;
        try {
            FileReader reader = new FileReader("person.json");
            persons = gson.fromJson(reader, Person[].class);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        for (Person p : persons){
            System.out.println(p);
        }
    }
}

Kết quả trả về:

Jimmy Buncom - 30 - Indonesia
Lucille Pollastrone - 24 - Poland
Hort Tall - 15 - Indonesia
Ruprecht Plampeyn - 21 - China
Erhard Liles - 26 - Dominican Republic

Biến đổi từ Mảng sang JSON

import com.google.gson.Gson;

public class Main {
    public static void main(String[] args) {

        //Tạo nhân vật Gson
        Gson gson = new Gson();

        //Biến đổi từ mảng sang JSON
        Person arr[] = new Person[5];
        arr[0] = new Person("John", 25, "American");
        arr[1] = new Person("Chris", 30, "France");
        arr[2] = new Person("Madeline", 19, "Colombia");
        arr[3] = new Person("Anna", 21, "Russia");
        arr[4] = new Person("Hoàng", 27, "Việt Nam");

        String rs = gson.toJson(arr);
        System.out.println(rs);
    }
}

Kết quả

[
{"name": "John","age": 25,"address": "American"},
{"name": "Chris","age": 30,"address": "France"},
{"name": "Madeline","age": 19,"address": "Colombia"},
{"name": "Anna","age": 21,"address": "Russia"},
{"name": "Hoàng","age": 27,"address": "Việt Nam"}
]

Biến đổi giữa JSON và Bộ sưu tập

Với Collection, tôi sẽ sử dụng ArrayList để tiến hành thí dụ. Tôi vẫn sử dụng tệp JSON trước ấy

Biến đổi từ JSON sang ArrayList

Để Gson hiểu được cấu trúc của ArrayList ấy, chúng ta cần chỉ vào kiểu của nó. May mắn thay, Gson có 1 lớp giúp tìm đúng kiểu dữ liệu TypeToken

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.lang.reflect.Type;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {

        //Tạo nhân vật Gson
        Gson gson = new Gson();

        //Biến đổi từ JSON sang ArrayList
        ArrayList<Person> list = new ArrayList<>();
        try {
            FileReader reader = new FileReader("person.json");
            Type type = new TypeToken<ArrayList<Person>>(){}.getType();
            list = gson.fromJson(reader, type);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        for(Person p : list){
            System.out.println(p);
        }
    }
}

Kết quả:

Jimmy Buncom - 30 - Indonesia
Lucille Pollastrone - 24 - Poland
Hort Tall - 15 - Indonesia
Ruprecht Plampeyn - 21 - China
Erhard Liles - 26 - Dominican Republic

Đối với biến đổi từ ArrayList sang JSON, chỉ cần tiến hành gần giống như với biến đổi từ mảng sang JSON

Khóa học Java FullStack cho người mới khởi đầu
Thông tin cụ thể: https://java.techmaster.vn/
Liên hệ cung ứng: Ms Mẫn – 0963023185 (zalo)


Thông tin thêm

Làm việc với Gson trong Java

01 tháng 03, 2022 – 154 lượt xem

Java cơ bản Java tăng lên JSON Java

Đầu mục bài viết

Bài viết liên can

Khoá học hay

#Làm #việc #với #Gson #trong #Java01 #tháng #lượt #xem #Java #căn #bản #Java #nâng #cao #JSON #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
[rule_3_plain] #Làm #việc #với #Gson #trong #Java01 #tháng #lượt #xem #Java #căn #bản #Java #nâng #cao #JSON #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
Google Gson là 1 thư viện Java cung ứng xử lý JSON (Biến đổi 1 chuỗi JSON thành nhân vật Java hoặc trái lại).
Ngoài Gson cũng có rất nhiều thư viên khác cung ứng xử lý Json có thể kể tới như Json-simple, Jackson, json.org,… Không những thế có 1 số lý do nhưng bạn nên sử dụng thư viện này:

Chuẩn hóa: Gson là thư viện chuẩn hóa do Google điều hành
Hiệu quả: Đây là 1 phần mở mang đáng tin tưởng, mau chóng và hiệu quả cho thư viện chuẩn Java
Tối ưu hóa: Thư viện được tối ưu hóa cao
Cung cấp Generics: Nó phân phối cung ứng phổ biến cho generics
Cung cấp các class phức tạp: Nó cung ứng các nhân vật phức tạp với hệ thống phân cấp kế thừa thâm thúy

Giờ hãy cùng xem cách sử dụng thư viện này:
Setup thư viện Gson
Để thiết đặt thư viên Gson chúng ta có các cách sau:
Sử dụng Maven:

<!– https://mvnrepository.com/artifact/com.google.code.gson/gson –>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.0</version>
</dependency>

Sử dụng Gradle:

// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation group: ‘com.google.code.gson’, name: ‘gson’, version: ‘2.9.0’

Biến đổi qua lại giữa JSON và Java Object
Biến đổi từ Object sang Json
Thí dụ mình có class sau:

public class Person {
private String name;
private int age;
private String address;

public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}

public String toString() {
return name + ” – ” + age + ” – ” + address;
}
}

Tiếp theo để có thể sử dụng các phương thức của Gson ta cần tạo nhân vật Gson. Để biến đổi 1 object sang JSON sử dụng phương thức toJson()

import com.google.gson.Gson;

public class Main {
public static void main(String[] args) {
//Tạo nhân vật Gson
Gson gson = new Gson();
Person person = new Person(“Ngọc”, 5, “Hà Giang”);

//Biến đổi từ Object sang JSON
String result = gson.toJson(person);
System.out.println(result);
}
}

Kết quả thu được:

{“name”:”Ngọc”,”age”:5,”address”:”Hà Giang”}

Biến đổi từ JSON thành Object
Để biến đổi từ JSON sang Object ta cũng cần tạo nhân vật Gson và sử dụng phương thức fromJson() để biến đổi

import com.google.gson.Gson;

public class Main {
public static void main(String[] args) {
//Tạo nhân vật Gson
Gson gson = new Gson();

//Biến đổi từ JSON sang Object
String json = “{“name”:”Linh”,”age”:8,”address”:”Hà Nội”}”;
Person newPerson = gson.fromJson(json, Person.class);
System.out.println(newPerson);
}
}

Kết quả:

Linh – 8 – Hà Nội

Biến đổi giữa JSON và mảng
Biến đổi từ JSON sang mảng
Giả thử mình có 1 file JSON như sau:

[{
“name”: “Jimmy Buncom”,
“age”: 30,
“address”: “Indonesia”
}, {
“name”: “Lucille Pollastrone”,
“age”: 24,
“address”: “Poland”
}, {
“name”: “Hort Tall”,
“age”: 15,
“address”: “Indonesia”
}, {
“name”: “Ruprecht Plampeyn”,
“age”: 21,
“address”: “China”
}, {
“name”: “Erhard Liles”,
“age”: 26,
“address”: “Dominican Republic”
}, {
“name”: “Fremont Murrow”,
“age”: 20,
“address”: “North Korea”
}]

import com.google.gson.Gson;

import java.io.FileNotFoundException;
import java.io.FileReader;

public class Main {
public static void main(String[] args) {

//Tạo nhân vật Gson
Gson gson = new Gson();

//Biến đổi từ JSON sang mảng
Person[] persons = null;
try {
FileReader reader = new FileReader(“person.json”);
persons = gson.fromJson(reader, Person[].class);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

for (Person p : persons){
System.out.println(p);
}
}
}

Kết quả trả về:

Jimmy Buncom – 30 – Indonesia
Lucille Pollastrone – 24 – Poland
Hort Tall – 15 – Indonesia
Ruprecht Plampeyn – 21 – China
Erhard Liles – 26 – Dominican Republic

Biến đổi từ mảng sang JSON

import com.google.gson.Gson;

public class Main {
public static void main(String[] args) {

//Tạo nhân vật Gson
Gson gson = new Gson();

//Biến đổi từ mảng sang JSON
Person arr[] = new Person[5];
arr[0] = new Person(“John”, 25, “American”);
arr[1] = new Person(“Chris”, 30, “France”);
arr[2] = new Person(“Madeline”, 19, “Colombia”);
arr[3] = new Person(“Anna”, 21, “Russia”);
arr[4] = new Person(“Hoàng”, 27, “Việt Nam”);

String rs = gson.toJson(arr);
System.out.println(rs);
}
}

Kết quả

[
{“name”: “John”,”age”: 25,”address”: “American”},
{“name”: “Chris”,”age”: 30,”address”: “France”},
{“name”: “Madeline”,”age”: 19,”address”: “Colombia”},
{“name”: “Anna”,”age”: 21,”address”: “Russia”},
{“name”: “Hoàng”,”age”: 27,”address”: “Việt Nam”}
]

Biến đổi qua lại giữa JSON và Collection
Với Collection mình sẽ sử dụng ArrayList để tiến hành thí dụ. Mình vẫn sử dụng file JSON ban nãy
Biến đổi từ JSON sang ArrayList
Để Gson hiểu được cấu trúc của ArrayList ấy ta cần chỉ đến kiểu của nó. Thật may mắn lúc Gson có 1 lớp để giúp ra tìm đúng kiểu dữ liệu ấy là TypeToken

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.lang.reflect.Type;
import java.util.ArrayList;

public class Main {
public static void main(String[] args) {

//Tạo nhân vật Gson
Gson gson = new Gson();

//Biến đổi từ JSON sang ArrayList
ArrayList<Person> list = new ArrayList<>();
try {
FileReader reader = new FileReader(“person.json”);
Type type = new TypeToken<ArrayList<Person>>(){}.getType();
list = gson.fromJson(reader, type);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

for(Person p : list){
System.out.println(p);
}
}
}

Kết quả:

Jimmy Buncom – 30 – Indonesia
Lucille Pollastrone – 24 – Poland
Hort Tall – 15 – Indonesia
Ruprecht Plampeyn – 21 – China
Erhard Liles – 26 – Dominican Republic

Còn đối với biến đổi từ ArrayList sang JSON thì cũng chỉ cần tiến hành gần giống như với biến đổi từ mảng sang JSON
Khóa học Java FullStack dành cho người mới bắt đầuChi tiết: https://java.techmaster.vn/Liên hệ cung ứng: Ms Mẫn – 0963023185 (zalo)
#Làm #việc #với #Gson #trong #Java01 #tháng #lượt #xem #Java #căn #bản #Java #nâng #cao #JSON #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
[rule_2_plain] #Làm #việc #với #Gson #trong #Java01 #tháng #lượt #xem #Java #căn #bản #Java #nâng #cao #JSON #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
[rule_2_plain] #Làm #việc #với #Gson #trong #Java01 #tháng #lượt #xem #Java #căn #bản #Java #nâng #cao #JSON #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
[rule_3_plain]

#Làm #việc #với #Gson #trong #Java01 #tháng #lượt #xem #Java #căn #bản #Java #nâng #cao #JSON #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
Google Gson là 1 thư viện Java cung ứng xử lý JSON (Biến đổi 1 chuỗi JSON thành nhân vật Java hoặc trái lại).
Ngoài Gson cũng có rất nhiều thư viên khác cung ứng xử lý Json có thể kể tới như Json-simple, Jackson, json.org,… Không những thế có 1 số lý do nhưng bạn nên sử dụng thư viện này:

Chuẩn hóa: Gson là thư viện chuẩn hóa do Google điều hành
Hiệu quả: Đây là 1 phần mở mang đáng tin tưởng, mau chóng và hiệu quả cho thư viện chuẩn Java
Tối ưu hóa: Thư viện được tối ưu hóa cao
Cung cấp Generics: Nó phân phối cung ứng phổ biến cho generics
Cung cấp các class phức tạp: Nó cung ứng các nhân vật phức tạp với hệ thống phân cấp kế thừa thâm thúy

Giờ hãy cùng xem cách sử dụng thư viện này:
Setup thư viện Gson
Để thiết đặt thư viên Gson chúng ta có các cách sau:
Sử dụng Maven:

<!– https://mvnrepository.com/artifact/com.google.code.gson/gson –>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.0</version>
</dependency>

Sử dụng Gradle:

// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation group: ‘com.google.code.gson’, name: ‘gson’, version: ‘2.9.0’

Biến đổi qua lại giữa JSON và Java Object
Biến đổi từ Object sang Json
Thí dụ mình có class sau:

public class Person {
private String name;
private int age;
private String address;

public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}

public String toString() {
return name + ” – ” + age + ” – ” + address;
}
}

Tiếp theo để có thể sử dụng các phương thức của Gson ta cần tạo nhân vật Gson. Để biến đổi 1 object sang JSON sử dụng phương thức toJson()

import com.google.gson.Gson;

public class Main {
public static void main(String[] args) {
//Tạo nhân vật Gson
Gson gson = new Gson();
Person person = new Person(“Ngọc”, 5, “Hà Giang”);

//Biến đổi từ Object sang JSON
String result = gson.toJson(person);
System.out.println(result);
}
}

Kết quả thu được:

{“name”:”Ngọc”,”age”:5,”address”:”Hà Giang”}

Biến đổi từ JSON thành Object
Để biến đổi từ JSON sang Object ta cũng cần tạo nhân vật Gson và sử dụng phương thức fromJson() để biến đổi

import com.google.gson.Gson;

public class Main {
public static void main(String[] args) {
//Tạo nhân vật Gson
Gson gson = new Gson();

//Biến đổi từ JSON sang Object
String json = “{“name”:”Linh”,”age”:8,”address”:”Hà Nội”}”;
Person newPerson = gson.fromJson(json, Person.class);
System.out.println(newPerson);
}
}

Kết quả:

Linh – 8 – Hà Nội

Biến đổi giữa JSON và mảng
Biến đổi từ JSON sang mảng
Giả thử mình có 1 file JSON như sau:

[{
“name”: “Jimmy Buncom”,
“age”: 30,
“address”: “Indonesia”
}, {
“name”: “Lucille Pollastrone”,
“age”: 24,
“address”: “Poland”
}, {
“name”: “Hort Tall”,
“age”: 15,
“address”: “Indonesia”
}, {
“name”: “Ruprecht Plampeyn”,
“age”: 21,
“address”: “China”
}, {
“name”: “Erhard Liles”,
“age”: 26,
“address”: “Dominican Republic”
}, {
“name”: “Fremont Murrow”,
“age”: 20,
“address”: “North Korea”
}]

import com.google.gson.Gson;

import java.io.FileNotFoundException;
import java.io.FileReader;

public class Main {
public static void main(String[] args) {

//Tạo nhân vật Gson
Gson gson = new Gson();

//Biến đổi từ JSON sang mảng
Person[] persons = null;
try {
FileReader reader = new FileReader(“person.json”);
persons = gson.fromJson(reader, Person[].class);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

for (Person p : persons){
System.out.println(p);
}
}
}

Kết quả trả về:

Jimmy Buncom – 30 – Indonesia
Lucille Pollastrone – 24 – Poland
Hort Tall – 15 – Indonesia
Ruprecht Plampeyn – 21 – China
Erhard Liles – 26 – Dominican Republic

Biến đổi từ mảng sang JSON

import com.google.gson.Gson;

public class Main {
public static void main(String[] args) {

//Tạo nhân vật Gson
Gson gson = new Gson();

//Biến đổi từ mảng sang JSON
Person arr[] = new Person[5];
arr[0] = new Person(“John”, 25, “American”);
arr[1] = new Person(“Chris”, 30, “France”);
arr[2] = new Person(“Madeline”, 19, “Colombia”);
arr[3] = new Person(“Anna”, 21, “Russia”);
arr[4] = new Person(“Hoàng”, 27, “Việt Nam”);

String rs = gson.toJson(arr);
System.out.println(rs);
}
}

Kết quả

[
{“name”: “John”,”age”: 25,”address”: “American”},
{“name”: “Chris”,”age”: 30,”address”: “France”},
{“name”: “Madeline”,”age”: 19,”address”: “Colombia”},
{“name”: “Anna”,”age”: 21,”address”: “Russia”},
{“name”: “Hoàng”,”age”: 27,”address”: “Việt Nam”}
]

Biến đổi qua lại giữa JSON và Collection
Với Collection mình sẽ sử dụng ArrayList để tiến hành thí dụ. Mình vẫn sử dụng file JSON ban nãy
Biến đổi từ JSON sang ArrayList
Để Gson hiểu được cấu trúc của ArrayList ấy ta cần chỉ đến kiểu của nó. Thật may mắn lúc Gson có 1 lớp để giúp ra tìm đúng kiểu dữ liệu ấy là TypeToken

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.lang.reflect.Type;
import java.util.ArrayList;

public class Main {
public static void main(String[] args) {

//Tạo nhân vật Gson
Gson gson = new Gson();

//Biến đổi từ JSON sang ArrayList
ArrayList<Person> list = new ArrayList<>();
try {
FileReader reader = new FileReader(“person.json”);
Type type = new TypeToken<ArrayList<Person>>(){}.getType();
list = gson.fromJson(reader, type);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

for(Person p : list){
System.out.println(p);
}
}
}

Kết quả:

Jimmy Buncom – 30 – Indonesia
Lucille Pollastrone – 24 – Poland
Hort Tall – 15 – Indonesia
Ruprecht Plampeyn – 21 – China
Erhard Liles – 26 – Dominican Republic

Còn đối với biến đổi từ ArrayList sang JSON thì cũng chỉ cần tiến hành gần giống như với biến đổi từ mảng sang JSON
Khóa học Java FullStack dành cho người mới bắt đầuChi tiết: https://java.techmaster.vn/Liên hệ cung ứng: Ms Mẫn – 0963023185 (zalo)

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button