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