Kako pretvoriti Java Map u JSON

Postoji nekoliko načina za pretvaranje Java Mape u JSON. Sasvim je uobičajeno pretvoriti Java nizove i Karte u JSON i obrnuto.

U ovom postu gledamo 3 različita primjera za pretvaranje Java Mape u JSON. Koristit ćemo biblioteke Jackson, Gson i org.json.

Java karta u JSON pomoću Jacksona

Sljedeći primjer koristi Jackson Core i Jackson Binding za pretvaranje Java Mape u JSON.

Da bismo koristili Jackson knjižnice, prvo ih moramo dodati u naše pom.xml datoteka:



com.fasterxml.jackson.core

jackson-core
2.9.8


com.fasterxml.jackson.core
jackson-databind
2.9.8

Zatim:

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

Izlaz:



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

Kao što se može vidjeti iz rezultata, redoslijed elemenata u JSON-u nije isti kao redoslijed kojim smo ih dodali na kartu.

Da bismo zadržali narudžbu, trebamo upotrijebiti SortedMap umjesto toga.

npr.

SortedMap elements = new TreeMap();

Izlaz:

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

Povezano:

Java karta u JSON pomoću Gsona

Sljedeći primjer koristi Gson knjižnicu za pretvorbu Java Mape u JSON, ali prvo moramo dodati Gson kao ovisnost u pom.xml datoteka.



com.google.code.gson
gson
2.8.5

Zatim:

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

Izlaz:

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

Java karta u JSON pomoću org.json

Sljedeći primjer koristi biblioteku org.json za pretvaranje Java mape u JSON, ali prvo moramo dodati org.json kao ovisnost o pom.xml datoteka.



org.json
json
20180813

Zatim:

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

Izlaz:

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