Comment convertir une carte Java en JSON

Il existe plusieurs façons de convertir une carte Java en JSON. Il est assez courant de convertir des tableaux et des cartes Java en JSON et vice versa.

Dans cet article, nous examinons 3 exemples différents pour convertir Java Map en JSON. Nous utiliserons les bibliothèques Jackson, Gson et org.json.



Mappage Java vers JSON à l'aide de Jackson

L'exemple suivant utilise Jackson Core et Jackson Binding pour convertir Java Map en JSON.


Afin d'utiliser les bibliothèques Jackson, nous devons d'abord les ajouter à notre pom.xml déposer:



com.fasterxml.jackson.core

jackson-core
2.9.8


com.fasterxml.jackson.core
jackson-databind
2.9.8

Puis:


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

Production:

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

Comme le montre la sortie, l'ordre des éléments dans le JSON n'est pas le même que l'ordre dans lequel nous les avons ajoutés à la carte.

Pour conserver la commande, nous devons utiliser SortedMap plutôt.

par exemple.


SortedMap elements = new TreeMap();

Production:

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

En rapport:



Mappage Java vers JSON à l'aide de Gson

L'exemple suivant utilise la bibliothèque Gson pour convertir Java Map en JSON, mais tout d'abord, nous devons ajouter Gson en tant que dépendance à pom.xml déposer.



com.google.code.gson
gson
2.8.5

Puis:


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 elements = new TreeMap();
elements.put('Key1', 'Value1');
elements.put('Key2', 'Value2');
elements.put('Key3', 'Value3');

Gson gson = new Gson();
Type gsonType = new TypeToken(){}.getType();
String gsonString = gson.toJson(elements,gsonType);
System.out.println(gsonString);
} }

Production:

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

Mappage Java vers JSON à l'aide de org.json

L'exemple suivant utilise la bibliothèque org.json pour convertir Java Map en JSON, mais nous devons d'abord ajouter org.json en tant que dépendance à pom.xml déposer.



org.json
json
20180813

Puis:

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 elements = new HashMap();
elements.put('Key1', 'Value1');
elements.put('Key2', 'Value2');
elements.put('Key3', 'Value3');

JSONObject json = new JSONObject(elements);

System.out.println(json);
} }

Production:


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