Al giorno d'oggi, è molto comune ricevere dati in Stringa JSON formato anziché XML. Quando abbiamo a che fare con JSON String in Java, non converte il file Stringa JSON A Oggetto JSON . Ma usa il Stringa JSON non è sempre una buona opzione perché è difficile affrontarla. A causa del cambiamento e della domanda della tecnologia, ne abbiamo bisogno convertire la stringa JSON in oggetto JSON per recuperare valori. per risolvere questo problema esistono alcune librerie open source che ce lo permettono convertire la stringa JSON in oggetto JSON. In questa sezione, abbiamo spiegato come convertire la stringa JSON in oggetto JSON in dettaglio con esempio. Prima di passare all'argomento principale, diamo un'occhiata al formato JSON.
jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] }
Il formato JSON sopra contiene sei attributi di cui i primi due sono stringhe, i successivi tre sono numerici e infine un array JSON.
Converti stringa JSON in oggetto JSON
Esistono le seguenti tre librerie utilizzate per convertire String in oggetto JSON in Java:
- Utilizzando la libreria Gson
- Utilizzo della libreria JSON-Simple
- Biblioteca di Jackson
Utilizzando la libreria Gson
Gson è un open source e ricco Giava libreria fornita da Google. Viene utilizzato per convertire la stringa JSON in un oggetto JSON equivalente e un oggetto JSON in una stringa JSON. La seguente riga di codice viene utilizzata per convertire la stringa JSON in oggetto JSON.
Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class)
Possiamo anche convertire un oggetto JSON in una stringa JSON utilizzando il file toJson() metodo.
String str = g.toJson(p);
Utilizzo della libreria JSON-Simple
È un'altra libreria Java open source utilizzata per convertire JSON String in JSON Object. Il vantaggio della libreria JSON-Simple è la sua dimensione ridotta. È perfetto laddove l'ambiente con vincoli di memoria è importante. Tieni presente che è compatibile anche con JDK 1.2. Significa che possiamo usarlo con un progetto legacy che non è in Java 5. Usiamo le seguenti istruzioni per convertire la stringa JSON in oggetto JSON.
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse);
Utilizzando la Biblioteca Jackson
La libreria Jackson è una libreria Java efficiente e ampiamente utilizzata per mappare oggetti Java su JSON e viceversa. È ricco di funzionalità, veloce nelle prestazioni e supporta anche lo streaming. Il flusso può analizzare un output JSON di grandi dimensioni dai servizi Web senza caricarlo completamente in memoria. La seguente istruzione converte la stringa JSON che rappresenta uno studente in una classe Java che rappresenta lo studente.
Student student = new ObjectMapper().readValue(jsonString, Student.class);
Lo svantaggio della libreria Jackson è che richiede almeno JDK 1.5. Pertanto, se abbiamo a che fare con una versione precedente, non si adatterà a questa versione. Un altro svantaggio della libreria Jackson è che non supporta J2ME.
Esempio di conversione da stringa JSON a oggetto JSON
Nel seguente programma, abbiamo convertito una stringa JSON in un oggetto 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();>
Vediamo un altro esempio.
JsonStringToJsonObjectExample2.java
interfaccia comparabile con 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); } }
Produzione:
Sam Smith Python