В днешно време е много обичайно да се получават данни в 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 = '[{'No':'17','Name':'Andrew'},{'No':'18','Name':'Peter'}, {'No':'19','Name':'Tom'}]'; 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'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 = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); 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 = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } }
Изход:
Sam Smith Python