logo

Конвертирайте JSON в Map в Java

Java предоставя две много силни библиотеки за работа с JSON данни, т.е. ДЖАКСЪН и Гсън библиотеки. Често се налага да преобразуваме JSON отговорите в карта, за да работим лесно с върнатите JSON данни.

Можем лесно да конвертираме JSON данни в карта, тъй като форматът JSON по същество е групиране на двойки ключ-стойност и картата също съхранява данни в двойки ключ-стойност.

Нека разберем как можем да използваме библиотеките JACKSON и Gson, за да конвертираме JSON данни в карта. Също така разбираме как можем да използваме и двете библиотеки, за да конвертираме картографски данни в JSON.

Да предположим, че имаме файл Sample.json в системата, който съдържа следните данни:

 { 'Name' : 'Donal', 'Mobile' : '89346724', 'Designation' : 'Sr. Salesforce Developer', 'Pet' : 'Dog', 'Address' : 'AMERICA' } 

Библиотека ДЖАКСЪН

За да конвертираме JSON данни в Java Map, използваме помощта на библиотеката JACKSON. Добавяме следната зависимост във файла POM.xml за работа с библиотека JACKSON.

 com.fasterxml.jackson.core jackson-databind 2.5.3 

Нека внедрим логиката на конвертиране на JSON данни в карта с помощта на класове ObjectMapper, File и TypeReference.

JacksonConvertJSONToMap.java

 // import required classes and packages package javaTpoint.JavaExample; import java.io.File; // for reading file data import java.util.Map; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; // create JacksonConvertJSONToMap class to convert JSON data into Java Map public class JacksonConvertJSONToMap { // main() method start public static void main(String args[]) { // create instance of the ObjectMapper class to map JSON data ObjectMapper mapper = new ObjectMapper(); // create instance of the File class File fileObj = new File(&apos;C:\Users\rastogi ji\OneDrive\Desktop\Sample.json&apos;); // use try-catch block to convert JSON data into Map try { // read JSON data from file using fileObj and map it using ObjectMapper and TypeReference classes Map userData = mapper.readValue( fileObj, new TypeReference<map>() { }); // print all key-value pairs System.out.println(&apos;Name : &apos; + userData.get(&apos;Name&apos;)); System.out.println(&apos;Mobile : &apos; + userData.get(&apos;Mobile&apos;)); System.out.println(&apos;Designation : &apos; + userData.get(&apos;Designation&apos;)); System.out.println(&apos;Pet : &apos; + userData.get(&apos;Pet&apos;)); System.out.println(&apos;Address : &apos; + userData.get(&apos;Address&apos;)); } catch (Exception e) { // show error message e.printStackTrace(); } } } </map>

Изход:

Конвертирайте JSON в Map в Java

Нека вземем друг пример за библиотеката Jackson, за да разберем как можем да конвертираме Java карта в JSON, защото често трябва да предаваме данни за карта към API като JSON. И така, в този пример ние конвертираме картографските данни в JSON и ги съхраняваме във файл.

JacksonConvertMapToJson.java

 // import required classes and packages package javaTpoint.JavaExample; import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import com.fasterxml.jackson.databind.ObjectMapper; //create JacksonConvertMapToJSON class to convert Map data into JSON public class JacksonConvertMapToJSON { // main() method start public static void main(String args[]) { // create instance of the ObjectMapper class ObjectMapper mapper = new ObjectMapper(); // declare and initialize map (key is of type String and value is of type Object) Map userData = new HashMap(); // declare variables and array to store user entered data String name, price, model; String colors[]; // create an instance of the Scanner class Scanner sc = new Scanner(System.in); // take inputs from the user and store them to the variables System.out.println(&apos;Enter the name of the car: &apos;); name = sc.nextLine(); System.out.println(&apos;Enter the modal number of the car: &apos;); model = sc.nextLine(); System.out.println(&apos;Enter the price of the car: &apos;); price = sc.nextLine(); colors = new String[3]; colors[0] = &apos;Red&apos;; colors[1] = &apos;Black&apos;; colors[2] = &apos;White&apos;; // close Scanner class object sc.close(); // fill userData map userData.put(&apos;Car&apos;, name); userData.put(&apos;Price&apos;, price); userData.put(&apos;Model&apos;, model); userData.put(&apos;Colors&apos;, colors); // use try-catch block to convert Java map into JSON try { // use ObjectMapper class to convert Map data into JSON and write it into Sample.json file mapper.writeValue(new File(&apos;C:\Users\rastogi ji\OneDrive\Desktop\Sample.json&apos;), userData); System.out.println(&apos;Map data successfully written to the Sample.json file.&apos;); } catch (Exception e) { // handle exception e.printStackTrace(); } } } 

Изход:

файл за промяна на linux
Конвертирайте JSON в Map в Java
Конвертирайте JSON в Map в Java

Gson библиотека

Гсън библиотека е друга библиотека, която можем да използваме за конвертиране на JSON данни в карта или картографски данни в JSON. За да използваме библиотеката Gson, трябва да добавим следната зависимост в нашия POM.xml файл.

 com.google.code.gson gson 2.8.3 

GsonConvertJSONToMap.java

 //import required classes and packages package javaTpoint.JavaExample; import java.util.HashMap; import java.util.Map; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; //create GsonConvertJSONToMap class to convert JSON data into Java Map public class GsonConvertJSONToMap { // main() method start public static void main(String args[]) { // create variable loc that store location of the Sample.json file String loc = &apos;C:\Users\rastogi ji\OneDrive\Desktop\Sample.json&apos;; String result; try { // read byte data from the Sample.json file and convert it into String result = new String(Files.readAllBytes(Paths.get(loc))); // store string data into Map by using TypeToken class Map userData = new Gson().fromJson(result, new TypeToken<hashmap>() { }.getType()); // print all key-value pairs System.out.println(&apos;Name : &apos; + userData.get(&apos;Name&apos;)); System.out.println(&apos;Mobile : &apos; + userData.get(&apos;Mobile&apos;)); System.out.println(&apos;Designation : &apos; + userData.get(&apos;Designation&apos;)); System.out.println(&apos;Pet : &apos; + userData.get(&apos;Pet&apos;)); System.out.println(&apos;Address : &apos; + userData.get(&apos;Address&apos;)); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } </hashmap>

Изход:

Конвертирайте JSON в Map в Java

Нека вземем друг пример за библиотеката Gson, за да разберем как да конвертираме Java карта в JSON. Използването на библиотеката Gson е малко по-различно от библиотеката Jackson.

GsonConvertMapToJson.java

 //import required classes and packages package javaTpoint.JavaExample; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import com.google.gson.Gson; //create GsonConvertMapToJson class to convert Map data into JSON public class GsonConvertMapToJson { // main() method start public static void main(String args[]) { // declare and initialize map(key is of type String and value is of type Object) Map userData = new HashMap(); // declare variables and array to store user entered data String name, price, model; String colors[]; // create an instance of the Scanner class Scanner sc = new Scanner(System.in); // take inputs from the user and store them to the variables System.out.println(&apos;Enter the name of the car: &apos;); name = sc.nextLine(); System.out.println(&apos;Enter the modal number of the car: &apos;); model = sc.nextLine(); System.out.println(&apos;Enter the price of the car: &apos;); price = sc.nextLine(); colors = new String[3]; colors[0] = &apos;Red&apos;; colors[1] = &apos;Black&apos;; colors[2] = &apos;White&apos;; // close Scanner class object sc.close(); // fill userData map userData.put(&apos;Car&apos;, name); userData.put(&apos;Price&apos;, price); userData.put(&apos;Model&apos;, model); userData.put(&apos;Colors&apos;, colors); // use try-catch block to convert Java map into JSON try (FileWriter file = new FileWriter(&apos;C:\Users\rastogi ji\OneDrive\Desktop\Sample.json&apos;)) { // create instance of the Gson Gson gsonObj = new Gson(); // convert userData map to json string String jsonStr = gsonObj.toJson(userData); // use write() of File to write json string into file file.write(jsonStr); // use flush() method to flushes stream file.flush(); System.out.println(&apos;Map data successfully written to the Sample.json file.&apos;); } catch (IOException e) { // error handling and exceptions e.printStackTrace(); } } } 

Изход:

Конвертирайте JSON в Map в Java
Конвертирайте JSON в Map в Java