Hvernig á að umbreyta Java Map í JSON

Það eru til nokkrar leiðir til að breyta Java Map í JSON. Það er nokkuð algengt að breyta Java Arrays og Maps í JSON og öfugt.

Í þessari færslu skoðum við 3 mismunandi dæmi til að breyta Java Map í JSON. Við munum nota Jackson, Gson og org.json bókasöfnin.



Java Map til JSON með Jackson

Eftirfarandi dæmi notar Jackson Core og Jackson Binding til að breyta Java Map í JSON.


Til þess að nota Jackson bókasöfnin verðum við fyrst að bæta þeim við pom.xml skrá:



com.fasterxml.jackson.core

jackson-core
2.9.8


com.fasterxml.jackson.core
jackson-databind
2.9.8

Þá:


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

Framleiðsla:



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

Eins og sést á framleiðslunni er röð frumefnanna í JSON ekki sú sama og röðin sem við bættum þeim við kortið.

Til að halda pöntuninni verðum við að nota SortedMap í staðinn.

t.d.


SortedMap elements = new TreeMap();

Framleiðsla:

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

Tengt:



Java Map til JSON með Gson

Eftirfarandi dæmi notar Gson bókasafn til að umbreyta Java Map í JSON, en fyrst þurfum við að bæta Gson sem ósjálfstæði við pom.xml skjal.



com.google.code.gson
gson
2.8.5

Þá:


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

Framleiðsla:

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

Java Map til JSON með org.json

Eftirfarandi dæmi notar org.json bókasafn til að umbreyta Java Map í JSON, en fyrst þurfum við að bæta org.json sem háð við pom.xml skjal.



org.json
json
20180813

Þá:

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

Framleiðsla:


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