By GokiSoft.com|
09:47 17/09/2021|
Java Advanced
[Share Code] Hướng dẫn tìm hiểu gson trong java - json trong java - gson example java - json example java - Khoá học lập trình Java
students.json
[
{
"fullname": "Tran Van A",
"gender": "Nam",
"email": "tranvana@gmail.com",
"phone-number": "2343242342",
"address": "Ha Noi"
}, {
"fullname": "Tran Van B",
"gender": "Nam",
"email": "tranvanb@gmail.com",
"phone-number": "2343242342",
"address": "Ha Noi"
}, {
"fullname": "Tran Van C",
"gender": "Nam",
"email": "tranvanc@gmail.com",
"phone-number": "2343242342",
"address": "Ha Noi"
}
]
C2010G.json
[
{
"info": {
"name": "C2010G",
"address": "54 Le Thanh Nghi"
},
"studentList": [
{
"fullname": "Tran Van A",
"gender": "Nam",
"email": "tranvana@gmail.com",
"phone-number": "2343242342",
"address": "Ha Noi"
},
{
"fullname": "Tran Van B",
"gender": "Nam",
"email": "tranvanb@gmail.com",
"phone-number": "2343242342",
"address": "Ha Noi"
},
{
"fullname": "Tran Van C",
"gender": "Nam",
"email": "tranvanc@gmail.com",
"phone-number": "2343242342",
"address": "Ha Noi"
}
]
},
{
"info": {
"name": "C2010G",
"address": "54 Le Thanh Nghi"
},
"studentList": [
{
"fullname": "Tran Van A",
"gender": "Nam",
"email": "tranvana@gmail.com",
"phone-number": "2343242342",
"address": "Ha Noi"
},
{
"fullname": "Tran Van B",
"gender": "Nam",
"email": "tranvanb@gmail.com",
"phone-number": "2343242342",
"address": "Ha Noi"
},
{
"fullname": "Tran Van C",
"gender": "Nam",
"email": "tranvanc@gmail.com",
"phone-number": "2343242342",
"address": "Ha Noi"
}
]
}
]
Source Code:
#ClassGroup.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package xml.lesson02;
import com.google.gson.annotations.SerializedName;
import java.util.List;
/**
*
* @author Diep.Tran
*/
public class ClassGroup {
@SerializedName("info")
Info info;
@SerializedName("studentList")
List<Student> studentList;
public void display() {
System.out.println(info);
for (Student student : studentList) {
System.out.println(student);
}
}
}
#Info.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package xml.lesson02;
/**
*
* @author Diep.Tran
*/
public class Info {
String name;
String address;
public Info() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Info{" + "name=" + name + ", address=" + address + '}';
}
}
#Main.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package xml.lesson02;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.json.JSONArray;
import org.json.JSONObject;
/**
* https://jsoneditoronline.org/
* JSON Lib
* https://repo1.maven.org/maven2/org/json/json/20210307/
* GSON Lib
* https://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.8
* @author Diep.Tran
*/
public class Main {
public static void main(String[] args) {
//parseJSON();
//parseGson();
parseGson2();
}
static void parseGson2() {
String content = getFileContent("C2010G.json");
Gson gson = new Gson();
List<ClassGroup> dataList = gson.fromJson(content, new TypeToken<List<ClassGroup>>(){}.getType());
for (ClassGroup classGroup : dataList) {
classGroup.display();
}
}
static void parseGson() {
String content = getFileContent("students.json");
Gson gson = new Gson();
List<Student> dataList = gson.fromJson(content, new TypeToken<List<Student>>(){}.getType());
for (Student student : dataList) {
System.out.println(student);
}
}
static void parseJSON() {
String content = getFileContent("students.json");
List<Student> dataList = new ArrayList<>();
JSONArray arr = new JSONArray(content);
for (int i = 0; i < arr.length(); i++) {
JSONObject obj = arr.getJSONObject(i);
Student std = new Student();
std.parseJSONObject(obj);
dataList.add(std);
}
for (Student student : dataList) {
System.out.println(student);
}
}
static String getFileContent(String filename) {
StringBuilder builder = new StringBuilder();
FileReader reader = null;
BufferedReader bufferedReader = null;
try {
reader = new FileReader(filename);
bufferedReader = new BufferedReader(reader);
String line;
while((line = bufferedReader.readLine()) != null) {
builder.append(line);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(reader != null) {
try {
reader.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
return builder.toString();
}
}
#Student.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package xml.lesson02;
import com.google.gson.annotations.SerializedName;
import org.json.JSONObject;
/**
*
* @author Diep.Tran
*/
public class Student {
@SerializedName("fullname")
String fullname;
@SerializedName("gender")
String gender;
@SerializedName("email")
String email;
@SerializedName("phone-number")
String phoneNumber;
@SerializedName("address")
String address;
public Student() {
}
public Student(String fullname, String gender, String email, String phoneNumber, String address) {
this.fullname = fullname;
this.gender = gender;
this.email = email;
this.phoneNumber = phoneNumber;
this.address = address;
}
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public void parseJSONObject(JSONObject obj) {
fullname = obj.getString("fullname");
gender = obj.getString("gender");
address = obj.getString("address");
email = obj.getString("email");
phoneNumber = obj.getString("phone-number");
}
@Override
public String toString() {
return "Student{" + "fullname=" + fullname + ", gender=" + gender + ", email=" + email + ", phoneNumber=" + phoneNumber + ", address=" + address + '}';
}
}
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)