Computer >> Máy Tính >  >> Lập trình >> Java

Cách chuyển đổi bản đồ Java sang JSON

Có một số cách để chuyển đổi một Bản đồ Java thành JSON. Việc chuyển đổi Mảng Java và Bản đồ thành JSON và ngược lại là điều khá phổ biến.

Trong bài đăng này, chúng tôi xem xét 3 ví dụ khác nhau để chuyển đổi Java Map sang JSON. Chúng tôi sẽ sử dụng các thư viện Jackson, Gson và org.json.

Java Map tới JSON bằng Jackson

Ví dụ sau sử dụng Jackson Core và Jackson Binding để chuyển đổi Java Map thành JSON.

Để sử dụng các thư viện Jackson, trước tiên chúng ta cần thêm chúng vào pom.xml của chúng tôi tệp:

<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>

Sau đó:

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();
        }
    }
}

Đầu ra:

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

Có thể thấy từ đầu ra, thứ tự của các phần tử trong JSON không giống với thứ tự mà chúng tôi đã thêm chúng vào bản đồ.

Để duy trì đơn đặt hàng, chúng tôi cần sử dụng SortedMap thay vào đó.

ví dụ:

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

Đầu ra:

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

Có liên quan:

  • Cách phân tích cú pháp JSON trong Java
  • Cách mã hóa và giải mã JSON
  • Cách chuyển đổi Đối tượng Java thành JSON

Ánh xạ Java tới JSON bằng Gson

Ví dụ sau sử dụng thư viện Gson để chuyển đổi Java Map thành JSON, nhưng trước tiên, chúng ta cần thêm Gson làm phụ thuộc vào pom.xml tệp.

<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>
</dependencies>

Sau đó:

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>(){}.getType();
        String gsonString = gson.toJson(elements,gsonType);
        System.out.println(gsonString);
    }
}

Đầu ra:

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

Ánh xạ Java tới JSON bằng org.json

Ví dụ sau sử dụng thư viện org.json để chuyển đổi Java Map thành JSON, nhưng trước tiên, chúng ta cần thêm org.json làm phụ thuộc vào pom.xml tệp.

<dependencies>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180813</version>
    </dependency>
</dependencies>

Sau đó:

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);
    }
}

Đầu ra:

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