logo

JSON'u Java'da Haritaya Dönüştürün

Java, JSON verileriyle çalışmak için çok güçlü iki kitaplık sağlar; Jackson Ve Gson kütüphaneler. Döndürülen JSON verileriyle kolayca çalışmak için genellikle JSON yanıtlarını bir haritaya dönüştürmemiz gerekir.

JSON formatı esasen bir anahtar/değer çifti gruplaması olduğundan ve harita aynı zamanda verileri anahtar/değer çiftlerinde de sakladığından, JSON verilerini kolayca bir haritaya dönüştürebiliriz.

JSON verilerini Haritaya dönüştürmek için hem JACKSON hem de Gson kitaplıklarını nasıl kullanabileceğimizi anlayalım. Harita verilerini JSON'a dönüştürmek için her iki kütüphaneyi de nasıl kullanabileceğimizi de anlıyoruz.

Diyelim ki sistemde aşağıdaki verileri içeren bir Sample.json dosyamız var:

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

JACKSON Kütüphanesi

JSON verilerini Java Map'e dönüştürmek için JACKSON kütüphanesinden yardım alıyoruz. JACKSON kütüphanesi ile çalışmak için POM.xml dosyasına aşağıdaki bağımlılığı ekliyoruz.

 com.fasterxml.jackson.core jackson-databind 2.5.3 

JSON verilerini haritaya dönüştürme mantığını ObjectMapper, File ve TypeReference sınıflarını kullanarak uygulayalım.

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>

Çıktı:

JSON'u Java'da Haritaya Dönüştürün

Bir Java haritasını JSON'a nasıl dönüştürebileceğimizi anlamak için Jackson kütüphanesinden başka bir örnek alalım çünkü harita verilerini API'ye JSON olarak sıklıkla aktarmamız gerekir. Bu örnekte Harita verilerini JSON'a dönüştürüp bir dosyada saklıyoruz.

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

Çıktı:

JSON'u Java'da Haritaya Dönüştürün
JSON'u Java'da Haritaya Dönüştürün

Gson Kütüphanesi

Gson JSON verilerini haritaya veya harita verilerini JSON'a dönüştürmek için kullanabileceğimiz başka bir kütüphane de kütüphanedir. Gson kütüphanesini kullanabilmek için POM.xml dosyamıza aşağıdaki bağımlılığı eklememiz gerekmektedir.

 com.google.code.gson gson 2.8.3 

GsonConvertJSONToMap.java

arduino'nun fonksiyonları
 //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>

Çıktı:

JSON'u Java'da Haritaya Dönüştürün

Bir Java haritasının JSON'a nasıl dönüştürüleceğini anlamak için Gson kütüphanesinin başka bir örneğini ele alalım. Gson kütüphanesini kullanmak Jackson kütüphanesinden biraz farklıdır.

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

Çıktı:

JSON'u Java'da Haritaya Dönüştürün
JSON'u Java'da Haritaya Dönüştürün