org.json - Kurzanleitung

org.json or JSON-Javaist ein einfaches Java-basiertes Toolkit für JSON. Mit org.json können Sie JSON-Daten codieren oder decodieren.

Eigenschaften

  • Specification Compliant - JSON.simple entspricht vollständig der JSON-Spezifikation - RFC4627.

  • Lightweight - Es hat nur sehr wenige Klassen und bietet die erforderlichen Funktionen wie Codieren / Decodieren und Escape-JSON.

  • XML Conversion - Es bietet Konvertierungsfunktionen von JSON nach XML und umgekehrt.

  • HTTP Headers - Unterstützt die Konvertierung von HTTP-Headern in JSON und umgekehrt.

  • Cookie - Bietet Unterstützung für die Konvertierung von Cookies in JSON und umgekehrt.

  • CDL - Bietet Unterstützung für die Konvertierung von durch Kommas getrennten Listen in JSON und umgekehrt.

  • No dependency- Keine externe Bibliotheksabhängigkeit. Kann unabhängig eingeschlossen werden.

  • Java 1.6-1.8 compatible - Quellcode und Binärdatei sind Java 1.6-1.8-kompatibel

Einrichtung der lokalen Umgebung

JSON.simple ist eine Bibliothek für Java. Die allererste Voraussetzung ist daher, dass JDK auf Ihrem Computer installiert ist.

System Anforderungen

JDK 1,5 oder höher.
Erinnerung Keine Mindestanforderung.
Festplattenplatz Keine Mindestanforderung.
Betriebssystem Keine Mindestanforderung.

Schritt 1: Überprüfen Sie die Java-Installation auf Ihrem Computer

Öffnen Sie zunächst die Konsole und führen Sie einen Java-Befehl aus, der auf dem Betriebssystem basiert, an dem Sie arbeiten.

Betriebssystem Aufgabe Befehl
Windows Öffnen Sie die Befehlskonsole c: \> Java-Version
Linux Öffnen Sie das Befehlsterminal $ java -version
Mac Terminal öffnen Maschine: <joseph $ java -version

Lassen Sie uns die Ausgabe für alle Betriebssysteme überprüfen -

Betriebssystem Ausgabe
Windows

Java-Version "1.8.0_101"

Java (TM) SE-Laufzeitumgebung (Build 1.8.0_101)

Linux

Java-Version "1.8.0_101"

Java (TM) SE-Laufzeitumgebung (Build 1.8.0_101)

Mac

Java-Version "1.8.0_101"

Java (TM) SE-Laufzeitumgebung (Build 1.8.0_101)

Wenn auf Ihrem System kein Java installiert ist, laden Sie das Java Software Development Kit (SDK) über den folgenden Link herunter : www.oracle.com . Wir gehen davon aus, dass Java 1.8.0_101 die installierte Version für dieses Tutorial ist.

Schritt 2: Stellen Sie die JAVA-Umgebung ein

Stellen Sie die JAVA_HOMEUmgebungsvariable, die auf den Speicherort des Basisverzeichnisses verweist, in dem Java auf Ihrem Computer installiert ist. Zum Beispiel.

Betriebssystem Ausgabe
Windows Setzen Sie die Umgebungsvariable JAVA_HOME auf C: \ Programme \ Java \ jdk1.8.0_101
Linux export JAVA_HOME = / usr / local / java-current
Mac export JAVA_HOME = / Library / Java / Home

Hängen Sie den Java-Compiler-Speicherort an den Systempfad an.

Betriebssystem Ausgabe
Windows Hängen Sie die Zeichenfolge an C:\Program Files\Java\jdk1.8.0_101\bin am Ende der Systemvariablen, Path.
Linux export PATH = $ PATH: $ JAVA_HOME / bin /
Mac nicht benötigt

Überprüfen Sie die Java-Installation mit dem Befehl java -version wie oben erklärt.

Schritt 3: Laden Sie das org.json-Archiv herunter

Laden Sie die neueste Version der JAR-Datei org.json von org.json @ MVNRepository herunter . Zum Zeitpunkt des Schreibens dieses Tutorials haben wir json-20180813 heruntergeladen und in den Ordner C: \> JSON kopiert.

Betriebssystem Archivname
Windows json-20180813.jar
Linux json-20180813.jar
Mac json-20180813.jar

Schritt 4: Legen Sie die JSON_JAVA-Umgebung fest

Stellen Sie die JSON_JAVAUmgebungsvariable, die auf den Speicherort des Basisverzeichnisses verweist, in dem org.json jar auf Ihrem Computer gespeichert ist. Nehmen wir an, wir haben json-20180813.jar im JSON-Ordner gespeichert.

Sr.Nr. Betriebssystem & Beschreibung
1

Windows

Setzen Sie die Umgebungsvariable JSON_JAVA auf C: \ JSON

2

Linux

export JSON_JAVA = / usr / local / JSON

3

Mac

export JSON_JAVA = / Library / JSON

Schritt 5: Setzen Sie die Variable CLASSPATH

Stellen Sie die CLASSPATH Umgebungsvariable, die auf den Speicherort JSON.simple jar verweist.

Sr.Nr. Betriebssystem & Beschreibung
1

Windows

Setzen Sie die Umgebungsvariable CLASSPATH auf% CLASSPATH%;% JSON_JAVA% \ json-20180813.jar;.;

2

Linux

export CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar:.

3

Mac

export CLASSPATH = $ CLASSPATH: $ JSON_JAVA / json-20180813.jar:.

Die CDL-Klasse bietet statische Methoden zum Konvertieren eines durch Kommas getrennten Textes in ein JSONArray und umgekehrt.

Die folgenden Methoden werden im Beispiel behandelt.

  • rowToJSONArray(String) - Konvertiert einen durch Kommas getrennten Text in ein JSONArray-Objekt.

  • rowToString(JSONArray) - Konvertiert ein JSONArray in durch Kommas getrennten Text.

  • toJSONArray(String) - Konvertiert einen mehrzeiligen, durch Kommas getrennten Text in Objekt von JSONArray-Objekten.

  • toJSONArray(JSONArray, String) - Konvertiert ein JSONArray-Objekt und einen durch Kommas getrennten Text in ein JSONArray-Objekt.

Beispiel

import org.json.CDL;
import org.json.JSONArray;
import org.json.JSONTokener;

public class JSONDemo {
   public static void main(String[] args) {
      String csvData = "INDIA, UK, USA";

      //Case 1: CSV to JSON Array 
      JSONArray jsonArray = CDL.rowToJSONArray(new JSONTokener(csvData));        
      System.out.println(jsonArray);

      //Case 2: JSONArray to CSV        
      System.out.println(CDL.rowToString(jsonArray));

      //Case 3: CSV to JSONArray of Objects
      csvData = "empId, name, age \n" +
         "1, Mark, 22 \n" +
         "2, Robert, 35 \n" +
         "3, Julia, 18";
      System.out.println(CDL.toJSONArray(csvData));

      //Case 4: CSV without header        
      jsonArray = new JSONArray();
      jsonArray.put("empId");
      jsonArray.put("name");
      jsonArray.put("age");
      csvData = "1, Mark, 22 \n" + "2, Robert, 35 \n" + "3, Julia, 18";
      System.out.println(CDL.toJSONArray(jsonArray,csvData));
   }
}

Ausgabe

["INDIA","UK","USA"]
INDIA,UK,USA

[{"name":"Mark","empId":"1","age":"22"},
   {"name":"Robert","empId":"2","age":"35"},
   {"name":"Julia","empId":"3","age":"18"}]
[{"name":"Mark","empId":"1","age":"22"},
   {"name":"Robert","empId":"2","age":"35"},
   {"name":"Julia","empId":"3","age":"18"}]

Die Cookie-Klasse bietet statische Methoden zum Konvertieren des Cookie-Textes des Webbrowsers in ein JSONObject und umgekehrt.

Die folgenden Methoden werden im Beispiel behandelt.

  • toJSONObject(String) - Konvertiert einen Cookie-Text in ein JSONObject-Objekt.

  • toString(JSONObject) - Konvertiert ein JSONObject in Cookie-Text.

Beispiel

import org.json.Cookie;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) {
      String cookie = "username = Mark Den; expires = Thu, 15 Jun 2020 12:00:00 UTC; path = /";

      //Case 1: Converts Cookie String to JSONObject
      JSONObject jsonObject = Cookie.toJSONObject(cookie);
      System.out.println(jsonObject);

      //Case 2: Converts JSONObject to Cookie String
      System.out.println(Cookie.toString(jsonObject));        
   }
}

Ausgabe

{"path":"/","expires":"Thu, 15 Jun 2020 12:00:00 UTC","name":"username","value":"Mark Den"}
username=Mark Den;expires=Thu, 15 Jun 2020 12:00:00 UTC;path=/

Die CookieList-Klasse bietet statische Methoden zum Konvertieren der Cookie-Liste in JSONObject und umgekehrt. Die Cookie-Liste ist eine Folge von Name / Wert-Paaren.

Die folgenden Methoden werden im Beispiel behandelt.

  • toJSONObject(String) - Konvertiert einen Cookie-Listentext in ein JSONObject-Objekt.

  • toString(JSONObject) - Konvertiert ein JSONObject in einen Cookie-Listentext.

Beispiel

import org.json.Cookie;
import org.json.CookieList;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) {
      String cookie = "username = Mark Den; expires = Thu, 15 Jun 2020 12:00:00 UTC; path = /";

      //Case 1: Converts Cookie String to JSONObject
      JSONObject cookieJSONObject = Cookie.toJSONObject(cookie);

      JSONObject cookielistJSONObject = new JSONObject();       
      cookielistJSONObject.put(cookieJSONObject.getString("name"), 
         cookieJSONObject.getString("value"));       

      String cookieList = CookieList.toString(cookielistJSONObject);        
      System.out.println(cookieList); 
      System.out.println(CookieList.toJSONObject(cookieList));
   }
}

Ausgabe

username=Mark Den
{"username":"Mark Den"}

Die HTTP-Klasse bietet statische Methoden zum Konvertieren des Kopfzeilentextes des Webbrowsers in ein JSONObject und umgekehrt.

Die folgenden Methoden werden im Beispiel behandelt.

  • toJSONObject(String) - Konvertiert einen Kopfzeilentext in ein JSONObject-Objekt.

  • toString(JSONObject) - Konvertiert ein JSONObject in Kopfzeilentext.

Beispiel

import org.json.HTTP;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) { 
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("Method", "POST");
      jsonObject.put("Request-URI", "http://www.tutorialspoint.com/");
      jsonObject.put("HTTP-Version", "HTTP/1.1");
        
      //Case 1: Converts JSONObject of Header to String
      String headerText = HTTP.toString(jsonObject);
      System.out.println(headerText); 
        
      headerText = "POST \"http://www.tutorialspoint.com/\" HTTP/1.1";
      //Case 2: Converts Header String to JSONObject
      System.out.println(HTTP.toJSONObject(headerText));
   }
}

Ausgabe

POST "http://www.tutorialspoint.com/" HTTP/1.1

{"Request-URI":"http://www.tutorialspoint.com/","Method":"POST","HTTP-Version":"HTTP/1.1"}

Ein JSONArray ist eine geordnete Folge von Werten. Es bietet Methoden, um auf Werte per Index zuzugreifen und Werte zu setzen. Folgende Typen werden unterstützt -

  • Boolean

  • JSONArray

  • JSONObject

  • Number

  • String

  • JSONObject.NULL-Objekt

Beispiel

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) { 
      JSONArray list = new JSONArray();

      list.put("foo");
      list.put(new Integer(100));
      list.put(new Double(1000.21));
      list.put(new Boolean(true));
      list.put(JSONObject.NULL);

      System.out.println("JSONArray: ");
      System.out.println(list);
   }
}

Ausgabe

JSONArray: 
["foo",100,1000.21,true,null]

Die JSONML-Klasse bietet statische Methoden zum Konvertieren eines XML-Textes in ein JSONArray und umgekehrt.

Die folgenden Methoden werden im Beispiel behandelt.

  • toJSONArray(String) - Konvertiert ein XML in ein JSONArray-Objekt.

  • toJSONObject(String) - Konvertiert ein XML in ein JSONObject-Objekt.

  • toString(JSONArray) - Gibt ein XML von einem JSONArray-Objekt.

  • toString(JSONObject) - Gibt ein XML von einem JSONObject-Objekt.

Beispiel

import org.json.JSONArray;
import org.json.JSONML;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) {
      JSONArray list = new JSONArray();
      list.put("name");
      list.put("Robert");     

      System.out.println("XML from a JSONArray: ");
      String xml = JSONML.toString(list);
      System.out.println(xml);

      System.out.println("JSONArray from a XML: ");
      list = JSONML.toJSONArray(xml);
      System.out.println(list);

      System.out.println("JSONObject from a XML: ");
      JSONObject object = JSONML.toJSONObject(xml);
      System.out.println(object);

      System.out.println("XML from a JSONObject: ");
      xml = JSONML.toString(object);
      System.out.println(xml);
   }
}

Ausgabe

XML from a JSONArray: 
<name>Robert</name>
JSONArray from a XML: 
["name","Robert"]
JSONObject from a XML: 
{"childNodes":["Robert"],"tagName":"name"}
XML from a JSONObject: 
<name>Robert</name>

Die JSONObject-Klasse ist eine ungeordnete Sammlung von Schlüssel-Wert-Paaren. Es bietet Methoden zum Zugriff auf Werte per Schlüssel und zum Setzen von Werten. Folgende Typen werden unterstützt -

  • Boolean

  • JSONArray

  • JSONObject

  • Number

  • String

  • JSONObject.NULL-Objekt

Beispiel

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONDemo {
   public static void main(String[] args) { 
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("Name", "Robert");
      jsonObject.put("ID", 1);
      jsonObject.put("Fees", new Double(1000.21));
      jsonObject.put("Active", new Boolean(true));
      jsonObject.put("Other Details", JSONObject.NULL);

      JSONArray list = new JSONArray();
      list.put("foo");
      list.put(new Integer(100));
      jsonObject.put("list",list);
      System.out.println(jsonObject);
   }
}

Ausgabe

{"Active":true,"Other Details":null,"ID":1,"Fees":1000.21,"list":["foo",100],"Name":"Robert"}

JSONStringer ist eine Dienstprogrammklasse zum schnellen Erstellen eines JSON-Textes, der die JSON-Syntaxregeln bestätigt. Jede Instanz von JSONStringer kann einen JSON-Text erzeugen.

Beispiel

import org.json.JSONStringer;

public class JSONDemo {
   public static void main(String[] args) { 
      String jsonText = new JSONStringer()
         .object()
         .key("Name")
         .value("Robert")                            
         .endObject()                       
         .toString();
      System.out.println(jsonText);

      jsonText = new JSONStringer()
         .array()
         .value("Robert")      
         .value("Julia")      
         .value("Dan")
         .endArray()                       
         .toString();
      System.out.println(jsonText);

      jsonText = new JSONStringer()
         .array()
         .value("Robert")      
         .value("Julia")      
         .value("Dan")
         .object()
         .key("Name")
         .value("Robert")                            
         .endObject()  
         .endArray()             
         .toString();
      System.out.println(jsonText);
   }
}

Ausgabe

{"Name":"Robert"}
["Robert","Julia","Dan"]
["Robert","Julia","Dan",{"Name":"Robert"}]

Die Eigenschaftsklasse bietet statische Methoden zum Konvertieren von Eigenschaftentext in ein JSONObject und umgekehrt.

Die folgenden Methoden werden im Beispiel behandelt.

  • toJSONObject(Properties) - Konvertiert Eigenschaftendaten in JSONObject-Objekt.

  • toProperties(JSONObject) - Konvertiert ein JSONObject in ein Eigenschaftenobjekt.

Beispiel

import java.util.Properties;
import org.json.JSONObject;
import org.json.Property;

public class JSONDemo {
   public static void main(String[] args) {
      Properties properties = new Properties();
      properties.put("title", "This is a title text");
      properties.put("subtitle", "This is a subtitle text");

      System.out.println("Properties to JSON");
      JSONObject jsonObject = Property.toJSONObject(properties);
      System.out.println(jsonObject);

      System.out.println("JSON to properties");
      System.out.println(Property.toProperties(jsonObject));
   }
}

Ausgabe

Properties to JSON
{"subtitle":"This is a subtitle text","title":"This is a title text"}
JSON to properties
{subtitle = This is a subtitle text, title = This is a title text}

Die XML-Klasse bietet statische Methoden zum Konvertieren eines XML-Textes in ein JSONObject und umgekehrt.

Die folgenden Methoden werden im Beispiel behandelt.

  • toJSONObject(String) - Konvertiert ein XML in ein JSONArray-Objekt.

  • toString(JSONObject) - Gibt ein XML von einem JSONObject-Objekt.

Beispiel

import org.json.JSONObject;
import org.json.XML;

public class JSONDemo {
   public static void main(String[] args) { 
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("Name", "Robert");
      jsonObject.put("ID", 1);
      jsonObject.put("Fees", new Double(1000.21));
      jsonObject.put("Active", new Boolean(true));
      jsonObject.put("Details", JSONObject.NULL);

      //Convert a JSONObject to XML
      String xmlText = XML.toString(jsonObject);
      System.out.println(xmlText);

      //Convert an XML to JSONObject
      System.out.println(XML.toJSONObject(xmlText));
   }
}

Ausgabe

<Active>true</Active><Details>null</Details><ID>1</ID><Fees>1000.21</Fees><Name>Robert</Name>
{"Active":true,"Details":null,"ID":1,"Fees":1000.21,"Name":"Robert"}

Dienstprogrammklassen von org.json lösen bei ungültigem JSON eine JSONException aus. Das folgende Beispiel zeigt, wie mit JSONException umgegangen wird.

Beispiel

import org.json.JSONException;
import org.json.XML;

public class JSONDemo {
   public static void main(String[] args) {
      try{
         //XML tag name should not have space.
         String xmlText = "<Other Details>null</Other Details>";
         System.out.println(xmlText);

         //Convert an XML to JSONObject
         System.out.println(XML.toJSONObject(xmlText));
      } catch(JSONException e){   
         System.out.println(e.getMessage());
      }
   }
}

Ausgabe

position: 24
Unexpected token RIGHT BRACE(}) at position 24.