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)