Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chuyển đổi Map thành JSON bằng thư viện Gson trong Java

Giới thiệu về Gson

Gson là một thư viện Java phổ biến được phát triển bởi Google, cho phép chuyển đổi đối tượng Java sang định dạng JSON và ngược lại. Để sử dụng, bạn cần thêm phụ thuộc com.google.gson vào dự án (Maven/Gradle).

Tạo instance Gson

Có hai cách phổ biến để tạo đối tượng Gson:

  • Cách 1: new Gson() – sử dụng cấu hình mặc định.
  • Cách 2: Sử dụng GsonBuilder để tùy chỉnh (pretty printing, null handling, v.v.) rồi gọi create().

Ví dụ: Chuyển đổi Map (TreeMap) sang JSON

import java.lang.reflect.Type;
import java.util.*;
import com.google.gson.*;
import com.google.gson.reflect.TypeToken;

public class ConvertMapToJsonExample {
    public static void main(String[] args) {
        // Tạo một SortedMap (TreeMap) để giữ thứ tự key
        SortedMap<String, String> data = new TreeMap<>();
        data.put("Raja", "Java");
        data.put("Ravi", "SAP");
        data.put("Surya", "Python");
        data.put("Kiran", "Scala");
        data.put("Vamsi", "Selenium");

        Gson gson = new Gson(); // hoặc new GsonBuilder().create()

        // Cần TypeToken để Gson hiểu kiểu generic Map<String, String>
        Type mapType = new TypeToken<SortedMap<String, String>>(){}.getType();

        String json = gson.toJson(data, mapType);
        System.out.println(json);
    }
}

Kết quả

{"Kiran":"Scala","Raja":"Java","Ravi":"SAP","Surya":"Python","Vamsi":"Selenium"}

Lưu ý: Vì dùng TreeMap, các key được sắp xếp theo thứ tự tự nhiên (alphabet). Nếu muốn giữ thứ tự thêm, hãy dùng LinkedHashMap kết hợp với GsonBuilder.