V dnešní době je velmi běžné přijímat data v Řetězec JSON formát místo XML. Když se zabýváme JSON String v Javě, nepřevádí to Řetězec JSON na Objekt JSON . Ale použijte Řetězec JSON vždy to není dobrá volba, protože je těžké se s tím vypořádat. Vzhledem ke změně a poptávce technologie musíme převést řetězec JSON na objekt JSON k načtení hodnot. k vyřešení tohoto problému existují některé open-source knihovny, které nám to umožňují převést řetězec JSON na objekt JSON. V této části jsme vysvětlili jak převést řetězec JSON na objekt JSON podrobně s příkladem. Než přejdeme k hlavnímu tématu, podívejme se na formát JSON.
jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] }
Výše uvedený formát JSON obsahuje šest atributů, z nichž první dva jsou řetězce, další tři jsou číselné a nakonec pole JSON.
Převeďte řetězec JSON na objekt JSON
K převodu String na JSON Object v Javě se používají následující tři knihovny:
- Použití knihovny Gson
- Použití JSON-Simple Library
- Jacksonova knihovna
Použití knihovny Gson
Gson je open-source a bohatý Jáva knihovna poskytovaná společností Google. Používá se k převodu JSON String na ekvivalentní JSON Object a JSON Object na JSON String. Následující řádek kódu se používá k převodu řetězce JSON na objekt JSON.
Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class)
Můžeme také převést JSON Object na JSON String pomocí toJson() metoda.
String str = g.toJson(p);
Použití JSON-Simple Library
Je to další open-source Java knihovna používaná pro převod JSON String na JSON Object. Výhodou knihovny JSON-Simple je její malá velikost. Je perfektní tam, kde je důležité prostředí s omezením paměti. Všimněte si, že je také kompatibilní s JDK 1.2. To znamená, že jej můžeme použít se starším projektem, který není v Javě 5. K převodu JSON String na JSON Object používáme následující příkazy.
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse);
Použití Jackson Library
Jackson library je efektivní a široce používaná Java knihovna pro mapování Java objektů do JSON a naopak. Je bohatý na funkce, rychlý ve výkonu a také podporuje streamování. Stream dokáže analyzovat velký výstup JSON z webových služeb, aniž by jej plně načítal do paměti. Následující příkaz převádí JSON String představující studenta na třídu Java reprezentující studenta.
Student student = new ObjectMapper().readValue(jsonString, Student.class);
Nevýhodou knihovny Jackson je, že vyžaduje alespoň JDK 1.5. Pokud tedy máme co do činění se starší verzí, nevejde se tam. Další nevýhodou Jackson knihovny je, že nepodporuje J2ME.
Příklad konverze řetězce JSON na objekt JSON
V následujícím programu jsme převedli řetězec JSON na objekt 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();>
Podívejme se na další příklad.
JsonStringToJsonObjectExample2.java
c ukázkové programy programování
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); } }
Výstup:
Sam Smith Python