logo

Як перетворити рядок на об’єкт JSON у Java?

Зараз дуже часто отримувати дані в Рядок JSON формат замість XML. Коли ми маємо справу з рядком JSON у 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

Для перетворення рядка в об’єкт JSON у Java використовуються такі три бібліотеки:

  • Використання бібліотеки Gson
  • Використання JSON-Simple Library
  • Бібліотека Джексона

Використання бібліотеки Gson

Gson є відкритим і багатим кодом Java бібліотека, надана Google. Він використовується для перетворення рядка JSON на еквівалентний об’єкт JSON і об’єкта JSON на рядок JSON. Наступний рядок коду використовується для перетворення рядка 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); 

Використання бібліотеки Джексона

Бібліотека Джексона — це ефективна та широко використовувана бібліотека Java для відображення об’єктів Java у JSON і навпаки. Він має багато функцій, швидку роботу, а також підтримує потокове передавання. Потік може аналізувати великий вихід JSON із веб-служб, не завантажуючи його повністю в пам’ять. Наступний оператор перетворює рядок JSON, що представляє студента, у клас Java, який представляє студента.

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

Недоліком бібліотеки Джексона є те, що вона вимагає щонайменше JDK 1.5. Тому, якщо ми маємо справу зі старою версією, вона туди не підійде. Іншим недоліком бібліотеки Джексона є те, що вона не підтримує 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

конструктор python
 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