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

Chuyển đổi Java Map sang JSON: Hướng dẫn từng bước với Jackson, Gson, org.json

Có nhiều cách chuyển Java Map sang JSON. Việc chuyển Array và Map Java sang JSON và ngược lại rất phổ biến.

Bài này trình bày 3 ví dụ dùng Jackson, Gson và org.json.

Java Map sang JSON với Jackson

Ví dụ dùng Jackson Core và Jackson Databind. Thêm dependency vào pom.xml:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.9.8</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.8</version>
    </dependency>
</dependencies>
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;

public class ConvertJavaMapToJson {
    @Test
    public void convertMapToJson() {
        Map<String, String> elements = new HashMap<>();
        elements.put("Key1", "Value1");
        elements.put("Key2", "Value2");
        elements.put("Key3", "Value3");
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            String json = objectMapper.writeValueAsString(elements);
            System.out.println(json);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}

Kết quả:

{"Key2":"Value2","Key1":"Value1","Key3":"Value3"}

Thứ tự phần tử trong JSON không giống thứ tự thêm vào Map. Để giữ thứ tự, dùng SortedMap:

SortedMap<String, String> elements = new TreeMap<>();

Kết quả:

{"Key1":"Value1","Key2":"Value2","Key3":"Value3"}
  • Cách parse JSON trong Java
  • Cách encode và decode JSON
  • Cách chuyển Java Object sang JSON

Java Map sang JSON với Gson

Thêm dependency Gson vào pom.xml:

<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>
</dependencies>
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.SortedMap;
import java.util.TreeMap;

public class ConvertJavaMapToJson {
    @Test
    public void convertMapToJson() {
        SortedMap<String, String> elements = new TreeMap<>();
        elements.put("Key1", "Value1");
        elements.put("Key2", "Value2");
        elements.put("Key3", "Value3");
        Gson gson = new Gson();
        Type gsonType = new TypeToken<HashMap<String, String>>(){}.getType();
        String gsonString = gson.toJson(elements, gsonType);
        System.out.println(gsonString);
    }
}

Kết quả:

{"Key1":"Value1","Key2":"Value2","Key3":"Value3"}

Java Map sang JSON với org.json

Thêm dependency org.json vào pom.xml:

<dependencies>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180813</version>
    </dependency>
</dependencies>
import org.json.JSONObject;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;

public class ConvertJavaMapToJson {
    @Test
    public void convertMapToJson() {
        Map<String, String> elements = new HashMap<>();
        elements.put("Key1", "Value1");
        elements.put("Key2", "Value2");
        elements.put("Key3", "Value3");
        JSONObject json = new JSONObject(elements);
        System.out.println(json);
    }
}

Kết quả:

{"Key2":"Value2","Key1":"Value1","Key3":"Value3"}