JSON (JavaScript-Objektnotation) ist ein leichtes Datenaustauschformat, das ein vollständig sprachunabhängiges Textformat verwendet und ein ideales Datenaustauschformat ist. In der Zwischenzeit ist JSON ein natives JavaScript -Format, was bedeutet, dass keine spezielle API oder kein Toolkit erforderlich ist, um JSON -Daten in JavaScript zu verarbeiten.
Viele JSON -Konstruktions- und Parsing -Tools unter Java werden unter www.json.org veröffentlicht. Unter ihnen sind Org.json und JSON-Lib relativ einfach. Die beiden sind ähnlich, aber es gibt immer noch einige Unterschiede. Als nächstes werden wir ein Beispiel für die Methode zur Verwendung von org.json zum Konstruktion und Analyse von JSON -Daten vorstellen.
Eine ausführliche Erläuterung der Methoden zur Konstruktion und Parsen von JSON-Daten mithilfe von JSON-LIB finden Sie in meinem vorherigen Blog-Beitrag: Zwei Methoden zur Konstruktion und Parsen von JSON-Daten mithilfe von JAVA (detaillierte Erklärung 1)
1. Einführung
Das org.json -Paket ist ein weiteres Paket, das zum Konvertieren von Bohnen, Sammlungen, Karten, Java -Arrays und XML und JSON verwendet wird. Es wird hauptsächlich zur Analyse von JSON -Daten verwendet. Es enthält detaillierte Erklärungen auf der offiziellen Website http://www.json.org/. Wenn Sie interessiert sind, können Sie es studieren.
2. Laden Sie das JAR -Abhängigkeitspaket herunter
Sie können es hier herunterladen
3. Einführung in grundlegende Methoden
Da Org.json nicht direkt in Bohnen konvertieren kann, muss es durch Karten umgewandelt werden. Zur Bequemlichkeit habe ich hier eine Werkzeugklasse JsonHelper geschrieben, mit der JSON mit Karte und Bohnen umgebaut wird.
Paket com.json; import java.lang.reflect.method; import Java.text.ParseException; import Java.util.hashMap; Import Java.util.iterator; Import Java.util.map; Convert Map to Javabean* 3: Convert JSONObject to Map, Javabean* * @author Alexia*/public class JsonHelper {/*** Convert Javabean to Map* * @param javaBean* javaBean* @return Map object*/public static Map toMap(Object javaBean) {Map result = new HashMap();Method[] methods = javabean.getClass (). getDeclaredMethods (); für (Methode Methode: Methoden) {try {if (methode.getName (). startswith ("get") {String field = methode.getName (); field = field.Substring (field.indexof ("und") + 3); field = field = field = field = field = field. value = methode.invoke (Javabean, (Objekt []) null); result.put (field, null == value? "": value.toString ());}} catch (Ausnahme E) {e.printStacktrace ();}} return Ergebnis;}/*** convert JSon -Objekt. static Map toMap(String jsonString) throws JSONException {JSONObject jsonObject = new JSONObject(jsonString);Map result = new HashMap();Iterator iterator = jsonObject.keys();String key = null;String value = null;while (iterator.hasNext()) {key = (String) iterator.next();value = JsonObject.getString (Schlüssel); result.put (Schlüssel, Wert);} Rückgabeergebnis;}/*** Javabean in jsonObject (Übertragung über Karte)** @param bean* Javabean* @return Json Object*/public static jsonObject tojson (Object bean) {{{{{{{{{{ @ @| Javabean* Javabean* @param data* MAP -Daten*/public static Object tojavabean (Objekt Javabean, Kartendaten) {methody [] methodien = javabean.getClass (). getDeclaredMethods (); für (Methode Methode: Methode) {try {if (methods methodname (). field.substring (field.indexof ("set") + 3); field = field.tolowerCase (). charat (0) + field.substring (1); Javabean* @Return JSON -Objekt* @Throws ParseException* JSON -Analyse -Ausnahme* @throws jSonexception*/public static void tojavabean (Objekt Javabean, String JSonstring) löst ParseException, JSonexception {JsonObject JsonObject = New JsonObject (jSstring); tomap (jsonObject.toString ()); tojavabean (javabean, map);}} 4. Demonstrationsbeispiel
Hier sind einige grundlegende gemeinsame Methoden zum Testen
Paket com.json; import java.text.parseException; import Java.util.arraylist; import Java.util.hashMap; Import Java.util.List; import Java.util.map; import org.json.jsonarray; Daten** @Author Alexia* @date 2013/5/23**/public class orgjsontest {/*** Konstrukt JSON -Daten** @return* @throws jSonexception*/public static String buildjson () löst JSonexception aus. String> map1 = new Hashmap <String, String> (); MAP1.PUT ("Name", "Alexia"); MAP1.put ("Sex", "weiblich"); map1.put ("Alter", "23"); map <String, String> map2 = new Hashmap <String, String> (); MAP2.PUT ("MAP2.PUT (" NAME "," NAME "," NAME "," EDWARD "); "24". JsonArray (); Ja.Put (MAP1); System.out.println ("JsonArray -Objektdatenformat:"); System.out.println (Ja.ToString (); // Javabean -system. -system. Mitarbeiterobjekt: "); System.out.println (jo1.toString ()); // JSON -Daten konstruieren, einschließlich einer Karte und eines JSON -Daten, das das Mitarbeitungsobjekt Jo.put (" map ", Ja); jo.put (" Mitarbeiter ", Jo1.toString ()); System.out.println ("/n -Final -JON -Datei -Data -Data -Format -Format -Format: "/N -Final -JON -Datenformat" -Format. "); JsonObject (jSonstring); Alter: " + ja.getJsonObject (0) .getInt (" Alter ")); String JSONSON = jo.getString (" Mitarbeiter "); Mitarbeiter EMP = New Employee (); "Sex:" + emp.getSEx () + "Alter:" + emp.getage ());}/*** @param args* @throws JSonexception* @throws ParseException*/public static void main (String [] args) wirft Jsonexception, ParseException {// todo auto auto-generated method stobersejson (buildjson (). Die Betriebsergebnisse sind wie folgt
5. Vergleich mit JSON-Lib
Die Verwendung von JSON-Lib und org.json ist fast gleich. Ich habe zwei Unterschiede zusammengefasst:
1. org.json ist viel leichter als Json-Lib. Ersteres stützt sich nicht auf andere JAR -Pakete, während letzteres von Lang, Protokollierung, Beanutils, Sammlungen und anderen Komponenten von Ezmorph und Commons abhängt.
2. JSON-LIB ist beim Bau von Bohnen und Parsing Bohnen viel bequemer als org.json. JSON-LIB kann direkt mit Bohnen konvertieren, während org.json nicht direkt mit Bohnen konvertieren und Karten als Transit benötigt. Wenn Sie Bohnen in JSON -Daten umwandeln, müssen Sie zuerst die Bohnen in Karten umwandeln und die Karten in JSON umwandeln, was problematischer ist.
Kurz gesagt, der gleiche Satz ist immer noch das Beste für Sie. Jeder sollte auswählen, mit welcher Methode sie nach Bedarf analysiert werden sollen. Schließlich werde ich zwei Tools zur Analyse von JSON -Daten vorstellen: eines ist das Online -Tool JSON EDIT (http://braincast.nl/samples/jsoneditor/); Das andere ist Eclipse Plugin Json Tree Analyzer, die beide sehr nützlich sind und für alle empfohlen werden!
Das obige ist die relevante Kenntnis der beiden Methoden (detaillierte Erklärung), die vom Editor verwendet werden, um Ihnen Java zum Konstrukt und Parsen von JSON -Daten vorzustellen. Ich hoffe, es wird für Sie hilfreich sein!