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

Phân tích JSON không có khóa trùng lặp bằng Gson trong Java

Gson là thư viện JSON cho Java, do Google tạo ra. Bằng Gson, chúng ta có thể tạo JSON và chuyển đổi JSON sang đối tượng Java. Có thể tạo instance Gson bằng cách tạo instance GsonBuilder và gọi phương thức create(). Có thể phân tích JSON không có khóa trùng lặp sử dụng lớp TypeToken. Nếu muốn tạo type literal cho Map, có thể tạo một anonymous inner class rỗng. Nếu cố chèn khóa trùng lặp, sẽ sinh ra lỗi runtime: "Exception in thread "main" com.google.gson.JsonSyntaxException: duplicate key".

Cú pháp

public class TypeToken<T> extends Object

Ví dụ minh họa

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

public class JsonWithoutDuplicateKeysTest {
    public static void main(String args[]) throws Exception {
        String json = "{\"123\":\"abc\", \"124\":\"def\", \"125\":\"ghi\"}";
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        Type mapType = new TypeToken<Map<Integer, String>>() {}.getType();
        Map<String, String> map = gson.fromJson(json, mapType);
        System.out.println(map);
    }
}

Kết quả đầu ra

{123=abc, 124=def, 125=ghi}

Lưu ý: Gson mặc định cho phép khóa trùng lặp trong JSON input (sẽ lấy giá trị cuối cùng). Để bắt lỗi khóa trùng lặp, cần cấu hình GsonBuilder().setStrictness(Strictness.STRICT) (từ Gson 2.10+) hoặc dùng custom deserializer.