W dzisiejszych czasach bardzo powszechne jest otrzymywanie danych Ciąg JSON formacie zamiast XML. Kiedy mamy do czynienia z ciągiem JSON w Javie, nie konwertuje on pliku Ciąg JSON Do Obiekt JSON . Ale użyj Ciąg JSON zawsze nie jest dobrym rozwiązaniem, ponieważ trudno sobie z tym poradzić. Musimy to zrobić ze względu na zmiany i zapotrzebowanie na technologię przekonwertuj ciąg JSON na obiekt JSON aby odzyskać wartości. Aby rozwiązać ten problem, istnieje kilka bibliotek typu open source, które nam na to pozwalają przekonwertuj ciąg JSON na obiekt JSON. W tej sekcji wyjaśniliśmy jak przekonwertować ciąg JSON na obiekt JSON szczegółowo na przykładzie. Zanim przejdziemy do głównego tematu, przyjrzyjmy się formatowi JSON.
jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] }
Powyższy format JSON zawiera sześć atrybutów, z których pierwsze dwa to ciągi znaków, kolejne trzy są liczbami i na końcu tablicą JSON.
Konwertuj ciąg JSON na obiekt JSON
Do konwersji ciągu znaków na obiekt JSON w Javie służą następujące trzy biblioteki:
- Korzystanie z biblioteki Gson
- Korzystanie z prostej biblioteki JSON
- Biblioteka Jacksona
Korzystanie z biblioteki Gson
Gson jest oprogramowaniem typu open source i bogatym Jawa biblioteka udostępniana przez Google. Służy do konwersji ciągu JSON na równoważny obiekt JSON i obiektu JSON na ciąg JSON. Poniższy wiersz kodu służy do konwersji ciągu JSON na obiekt JSON.
Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class)
Możemy również przekonwertować obiekt JSON na ciąg JSON za pomocą doJsona() metoda.
String str = g.toJson(p);
Korzystanie z prostej biblioteki JSON
Jest to kolejna biblioteka Java typu open source używana do konwersji ciągu JSON na obiekt JSON. Zaletą biblioteki JSON-Simple jest jej niewielki rozmiar. Jest idealny tam, gdzie ważne jest środowisko ograniczone pamięci. Należy pamiętać, że jest on również kompatybilny z JDK 1.2. Oznacza to, że możemy go używać w starszych projektach, które nie są w Javie 5. Poniższe instrukcje służą do konwersji ciągu JSON na obiekt JSON.
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse);
Korzystanie z Biblioteki Jacksona
Biblioteka Jacksona to wydajna i szeroko stosowana biblioteka Java do mapowania obiektów Java na JSON i odwrotnie. Jest bogaty w funkcje, szybki w działaniu, a także obsługuje przesyłanie strumieniowe. Strumień może analizować duże dane wyjściowe JSON z usług internetowych bez pełnego ładowania ich do pamięci. Poniższa instrukcja konwertuje ciąg JSON reprezentujący ucznia na klasę Java reprezentującą ucznia.
Student student = new ObjectMapper().readValue(jsonString, Student.class);
Wadą biblioteki Jacksona jest to, że wymaga ona co najmniej JDK 1.5. Dlatego jeśli mamy do czynienia ze starszą wersją, to ona tam nie zmieści się. Kolejną wadą biblioteki Jacksona jest to, że nie obsługuje ona J2ME.
Przykład konwersji ciągu JSON na obiekt JSON
W poniższym programie przekonwertowaliśmy ciąg JSON na obiekt 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();>
Zobaczmy inny przykład.
JsonStringToJsonObjectExample2.java
dodaj tablicę Java
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); } }
Wyjście:
Sam Smith Python