Kaip konvertuoti „Java“ žemėlapį į JSON

Yra keletas būdų, kaip „Java Map“ paversti JSON. Gana įprasta „Java“ masyvus ir žemėlapius konvertuoti į JSON ir atvirkščiai.

Šiame įraše mes apžvelgiame 3 skirtingus pavyzdžius, kaip konvertuoti „Java Map“ į JSON. Mes naudosime Jackson, Gson ir org.json bibliotekas.



„Java“ žemėlapis JSON naudojant Jackson

Šis pavyzdys naudoja „Jackson Core“ ir „Jackson Binding“ konvertuoti „Java Map“ į JSON.


Kad galėtume naudotis Jacksono bibliotekomis, pirmiausia turime jas pridėti prie savo pom.xml failas:



com.fasterxml.jackson.core

jackson-core
2.9.8


com.fasterxml.jackson.core
jackson-databind
2.9.8

Tada:


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

Išvestis:



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

Kaip matyti iš išvesties, JSON elementų tvarka nėra tokia pati kaip tvarka, kurią mes įtraukėme į žemėlapį.

Norėdami išlaikyti užsakymą, turime naudoti SortedMap vietoj to.

pvz.


SortedMap elements = new TreeMap();

Išvestis:

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

Susijęs:



„Java“ žemėlapis JSON naudojant „Gson“

Šiame pavyzdyje „Gson“ biblioteka naudojama „Java Map“ konvertuoti į JSON, tačiau pirmiausia turime pridėti „Gson“ kaip priklausomybę nuo pom.xml failą.



com.google.code.gson
gson
2.8.5

Tada:


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

Išvestis:

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

„Java“ žemėlapis JSON naudojant org.json

Šiame pavyzdyje naudojama „org.json“ biblioteka konvertuojant „Java Map“ į JSON, tačiau pirmiausia turime pridėti org.json kaip priklausomybę nuo pom.xml failą.



org.json
json
20180813

Tada:

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

Išvestis:


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