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