logo

Как да конвертирате низ в JSON обект в Java?

В днешно време е много обичайно да се получават данни в JSON низ формат вместо XML. Когато имаме работа с JSON String в Java, той не конвертира JSON низ да се JSON обект . Но използвайте JSON низ винаги не е добър вариант, защото е трудно да се справите с него. Поради промяната и търсенето на технологията, ние трябва конвертирайте JSON низ в JSON обект за извличане на стойности. за разрешаване на този проблем има някои библиотеки с отворен код, които ни позволяват конвертирайте JSON низ в JSON обект. В този раздел сме обяснили как да конвертирате JSON низ в JSON обект подробно с пример. Преди да преминем към основната тема, нека да разгледаме формата JSON.

 jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] } 

Горният формат JSON съдържа шест атрибута, от които първите два са низове, следващите три са числови и накрая масив JSON.

Преобразувайте JSON низ в JSON обект

Има следните три библиотеки, използвани за конвертиране на String в JSON обект в Java:

  • Използване на Gson библиотека
  • Използване на JSON-Simple Library
  • Библиотека Джаксън

Използване на Gson библиотека

Gson е с отворен код и е богат Java библиотека, предоставена от Google. Използва се за преобразуване на JSON String в еквивалентен JSON обект и JSON обект в JSON String. Следният ред код се използва за преобразуване на JSON низ в JSON обект.

 Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class) 

Можем също да конвертираме JSON обект в JSON низ, като използваме toJson() метод.

 String str = g.toJson(p); 

Използване на JSON-Simple Library

Това е друга Java библиотека с отворен код, използвана за конвертиране на JSON String в JSON Object. Предимството на библиотеката JSON-Simple е нейният малък размер. Той е перфектен, когато средата с ограничения на паметта е важна. Имайте предвид, че е съвместим и с JDK 1.2. Това означава, че можем да го използваме с наследен проект, който не е в Java 5. Използваме следните изрази, за да конвертираме JSON низа в JSON обект.

 JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse); 

Използване на Jackson Library

Библиотеката Jackson е ефективна и широко използвана Java библиотека за картографиране на Java обекти в JSON и обратно. Той е богат на функции, бърз в изпълнение и също така поддържа стрийминг. Потокът може да анализира голям JSON изход от уеб услуги, без да го зарежда напълно в паметта. Следният оператор преобразува JSON String, представляващ ученик, в Java клас, представляващ ученика.

 Student student = new ObjectMapper().readValue(jsonString, Student.class); 

Недостатъкът на библиотеката Jackson е, че изисква поне JDK 1.5. Следователно, ако имаме работа с по-стара версия, тя няма да се побере там. Друг недостатък на библиотеката Jackson е, че не поддържа J2ME.

Пример за преобразуване на JSON низ в JSON обект

В следната програма сме преобразували JSON низ в JSON обект.

JsonStringToJsonObjectExample.java

 import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = &apos;[{&apos;No&apos;:&apos;17&apos;,&apos;Name&apos;:&apos;Andrew&apos;},{&apos;No&apos;:&apos;18&apos;,&apos;Name&apos;:&apos;Peter&apos;}, {&apos;No&apos;:&apos;19&apos;,&apos;Name&apos;:&apos;Tom&apos;}]&apos;; JSONArray array = new JSONArray(str); for(int i=0; i <array.length(); i++) { jsonobject object="array.getJSONObject(i);" system.out.println(object.getstring('no')); system.out.println(object.getstring('name')); } < pre> <p> <strong>Output:</strong> </p> <pre> 17 Andrew 18 Peter 19 Tom </pre> <p>Let&apos;s see another example.</p> <p> <strong>JsonStringToJsonObjectExample2.java</strong> </p> <pre> import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>

Да видим друг пример.

JsonStringToJsonObjectExample2.java

c форматиран низ
 import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } 

Изход:

 Sam Smith Python