Dieser Artikel analysiert drei Möglichkeiten, JSON auf der Grundlage von Java zu analysieren. Teilen Sie es für Ihre Referenz wie folgt weiter:
1. Was ist JSON?
JSON ist eine Datenstruktur, die XML ersetzt. Im Vergleich zu XML ist es kleiner, verfügt jedoch über gute Beschreibungsfunktionen. Aufgrund seiner Kleinheit überträgt das Netzwerk Daten, um mehr Verkehr zu reduzieren und zu beschleunigen.
JSON ist eine Reihe von Saiten, aber Elemente sind mit bestimmten Symbolen gekennzeichnet.
{} Doppelklammern repräsentieren Objekte
[] Klammern repräsentieren Array
"" In Doppelzitaten sind Attribute oder Werte
: Der Dickdarm gibt an, dass letzterer der Wert des ersteren ist (dieser Wert kann eine Zeichenfolge, eine Zahl oder ein anderes Array oder ein anderes Objekt sein)
Also {"Name": "Michael"} kann als ein Objekt verstanden werden, das den Namen als Michael enthält
Und [{"Name": "Michael"}, {"Name": "Jerry"}] bedeutet ein Array, das zwei Objekte enthält
Natürlich können Sie auch {"Name": ["Michael", "Jerry"]} verwenden, um das obige zu vereinfachen, was ein Objekt mit einem Array von Namen ist.
2. Traditionelle JSON -Analyse: JSON -Analyse
1. Generieren Sie die JSON -String
public static String createJonstring (String -Schlüssel, Objektwert) {JsonObject jsonObject = new JsonObject (); JsonObject.put (Schlüssel, Wert); return jsonObject.toString ();}2. JSON -Saiten analysieren
Es ist in die folgenden drei Situationen unterteilt: ein JavaBean, ein Listen -Array und ein Listen -Array mit verschachtelten Karte:
Import Java.util.ArrayList; Import Java.util.hashMap; Import Java.util.iterator; Import Java.util.List; Import Java.util.map; JSONTOOLS {public statische Person Getperson (String Key, String jSonstring) {Person Person = new Person (); try {jsonObject jsonObject = new JsonObject (jSonstring); JsonObject personObject = jsonObject.getJsonObject ("Person"); Person.setID (personObject.getInt ("id")); Person.SetName (personObject.getString ("Name")); Person.SetAddress (personObject.getString ("Adresse")); } catch (Ausnahme e) {// toDo: Behandeln Sie die Ausnahme} zurück; } public static list getPersons (String -Schlüssel, String jSonstring) {listlist = new ArrayList (); try {jsonObject jsonObject = new JsonObject (jSonstring); // RECHTE DIE ARRAY VON JSON JSONARRAY JSONARAY = JSONOBJECT.getJsonArray (Schlüssel); für (int i = 0; i <jsonArray.length (); i ++) {jsonObject jsonObject2 = jsonArray.getJsonObject (i); Person Person = New Person (); Person.setID (jsonObject2.getInt ("id")); Person.SetName (jsonObject2.getString ("Name")); Person.SetAddress (jsonObject2.getString ("Adresse")); list.add (Person); }} catch (Ausnahme e) {// toDo: Handle Exception} Rückgabeliste; } public static list getList (String -Schlüssel, String jSonstring) {listlist = new ArrayList (); try {jsonObject jsonObject = new JsonObject (jSonstring); JsonArray jsonArray = jsonObject.getJsonArray (Schlüssel); für (int i = 0; i <jsonArray.length (); i ++) {String msg = jsonArray.getString (i); list.add (msg); }} catch (Ausnahme e) {// toDo: Handle Exception} Rückgabeliste; } public static list> listKeymaps (String -Schlüssel, String jSonstring) {list> list = new ArrayList> (); try {jsonObject jsonObject = new JsonObject (jSonstring); JsonArray jsonArray = jsonObject.getJsonArray (Schlüssel); für (int i = 0; i <jsonArray.length (); i ++) {jsonObject jsonObject2 = jsonArray.getJsonObject (i); Map map = new HashMap (); Iterator iterator = jsonObject2.Keys (); while (iterator.hasnext ()) {String json_key = iterator.next (); Objekt json_value = jsonObject2.get (json_key); if (json_value == null) {json_value = ""; } map.put (json_key, json_value); } list.add (map); }} catch (Ausnahme e) {// toDo: Handle Exception} Rückgabeliste; }}3. GSON -Analyse von JSON
1. Generieren Sie die JSON -String
import com.google.gson.gson; public class jsonutils {public static String createjsonObject (Objekt obj) {gson gson = new gson (); String str = gson.tojson (OBJ); return str; }}2. Analysieren Sie JSON
Import Java.util.ArrayList; Import java.util.list; import Java.util.map; import com.google.gson.gson; @param cls * @return */ public static t getPerson (String jSonstring, Klasse cls) {t t = null; try {gson gson = new gson (); t = gson.fromjson (jSonstring, cls); } catch (Ausnahme e) {// toDo: Behandeln Sie Ausnahme} return t; } / ** * Verwenden Sie GSON, um die Liste zu analysieren * * @param * @param jSonstring * @param cls * @return * / public static list getPersons (String jSonstring, Klasse cls) {listlist = new ArrayList (); try {gson gson = new gson (); list = gson.fromjson (jSonstring, neue TypeToken> () {} .GetType ()); } catch (Ausnahme E) {} Rückgabeliste; } / ** * @param jSonstring * @return * / public static list getList (String jSonstring) {listlist = new ArrayList (); try {gson gson = new gson (); list = gson.fromjson (jSonstring, neue TypeToken> () {} .GetType ()); } catch (Ausnahme e) {// toDo: Behandlungsausnahme} Rückgabeliste; } public static list> listKeymaps (String jSonstring) {list> list = new ArrayList> (); try {gson gson = new gson (); list = gson.fromjson (jSonstring, neu typetoken >> () {} .GetType ()); } catch (Ausnahme e) {// toDo: Behandlungsausnahme} Rückgabeliste; }}4. Fastjson Parsing
Import Java.util.ArrayList; Import java.util.list; import Java.util.map; Import com.alibaba.fastjson.json; import com.alibaba.fastjson try {t = json.ParseObject (jSonstring, cls); } catch (Ausnahme e) {// toDo: Behandeln Sie Ausnahme} return t; } public static list getPersonList (String jSonstring, Klasse cls) {listlist = new ArrayList (); try {list = json.ParSearray (jSonstring, cls); } catch (Ausnahme e) {// toDo: Behandlungsausnahme} Rückgabeliste; } public static list> getPersonListMap1 (String jSonstring) {list> list = new ArrayList> (); try {list = json.ParseObject (jSonstring, neue Typeeferenferation >> () {} .GetType ()); } catch (Ausnahme e) {// toDo: Behandlungsausnahme} Rückgabeliste; }}Zusammenfassen:
Für mobile Geräte, insbesondere bei schlechten Netzwerkumgebungen und Verkehrsbeschränkungen, spart JSON den Datenverkehr und hat eine höhere Übertragungseffizienz im Vergleich zu XML -Formatdatenübertragung. Unter diesen drei analytischen Methoden ist Fastjson am effizientesten und wird empfohlen.
PS: In Bezug auf den JSON -Betrieb finden Sie hier einige praktische JSON -Online -Tools für Ihre Referenz: Online -JSON -Code -Überprüfung, Inspektion, Verschönerung und Formatierungswerkzeuge: JSON Online -Formatierungs -Tool: Online -XML/JSON -Mutual Conversion Tool: JSON -Code Online -Formatierung/Verschönerung/Komprimierung/Bearbeitung/Konvertieren von Tools: Online -JSON -Komprimierungs-/Essentflüchtungswerkzeuge: C Sprachstil/HTML/CSS/JSON -Code -Formatierung und Verschönerungswerkzeuge:
http://tools.vevb.com/code/json
http://tools.vevb.com/code/jsonformat
http://tools.vevb.com/code/xmljson
http://tools.vevb.com/code/jsoncodeFormat
http://tools.vevb.com/code/json_yasuo_trans
http://tools.vevb.com/code/ccode_html_css_json
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.