json-simple Beispiel
json-simple verwendet intern Map und List für die JSON-Verarbeitung. Wir können json-simple sowohl zum Parsen von JSON-Daten als auch zum Schreiben von JSON in eine Datei verwenden. Eines der besten Merkmale von json-simple ist, dass es keine Abhängigkeiten von Drittanbieter-Bibliotheken hat. json-simple ist eine sehr leichte API und eignet sich gut für einfache JSON-Anforderungen.
json-simple maven
Wir können die json-simple Bibliothek zu unserem Projekt hinzufügen, indem wir sie von hier herunterladen. Da json-simple im Maven-Zentralrepository verfügbar ist, ist der beste Weg, seine Abhängigkeit in der pom.xml-Datei hinzuzufügen.
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
Beispiel zum Schreiben von JSON in eine Datei
Die wichtigste Klasse in der json-simple API ist org.json.simple.JSONObject. Wir erstellen eine Instanz von JSONObject und fügen Schlüssel-Wert-Paare hinzu. Die toJSONString Methode von JSONObject gibt das JSON im String-Format zurück, das wir in eine Datei schreiben können. Zum Schreiben einer Liste zu einem JSON-Schlüssel können wir org.json.simple.JSONArray verwenden.
package com.journaldev.json.write;
import java.io.FileWriter;
import java.io.IOException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class JsonSimpleWriter {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
JSONObject obj = new JSONObject();
obj.put("name", "Pankaj Kumar");
obj.put("age", new Integer(32));
JSONArray cities = new JSONArray();
cities.add("New York");
cities.add("Bangalore");
cities.add("San Francisco");
obj.put("cities", cities);
try {
FileWriter file = new FileWriter("data.json");
file.write(obj.toJSONString());
file.flush();
file.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.print(obj.toJSONString());
}
}
Die obige Klasse wird data.json schreiben, unten ist der JSON-Inhalt dieser Datei.
{"cities":["New York","Bangalore","San Francisco"],"name":"Pankaj Kumar","age":32}
Haben Sie den Vermerk @SuppressWarnings(„unchecked“) in der Methode main bemerkt? Dies wurde getan, um Warnungen im Zusammenhang mit der Typsicherheit zu vermeiden. JSONObject erweitert HashMap, unterstützt aber keine Generics, so dass Eclipse IDE eine Warnung wie unten ausgibt.
Type safety: Die Methode put(Object, Object) gehört zum raw type HashMap. Referenzen auf den generischen Typ HashMap<K,V> sollten parametrisiert werden
json-simple Beispiel zum Lesen von JSON aus einer Datei
Zum Lesen von JSON aus einer Datei müssen wir die Klasse org.json.simple.parser.JSONParser verwenden. Die parse Methode von JSONParser gibt ein JSONObject zurück. Dann können wir Werte abrufen, indem wir Schlüsselnamen übergeben. Unten ist ein json-simple Beispiel zum Lesen von JSON aus einer Datei.
package com.journaldev.json.write;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JsonSimpleReader {
public static void main(String[] args) throws ParseException, FileNotFoundException, IOException {
JSONParser parser = new JSONParser();
Reader reader = new FileReader("data.json");
Object jsonObj = parser.parse(reader);
JSONObject jsonObject = (JSONObject) jsonObj;
String name = (String) jsonObject.get("name");
System.out.println("Name = " + name);
long age = (Long) jsonObject.get("age");
System.out.println("Age = " + age);
JSONArray cities = (JSONArray) jsonObject.get("cities");
@SuppressWarnings("unchecked")
Iterator it = cities.iterator();
while (it.hasNext()) {
System.out.println("City = " + it.next());
}
reader.close();
}
}
Das oben genannte json-simple Beispiel erzeugt folgende Ausgabe.
Name = Pankaj Kumar
Age = 32
City = New York
City = Bangalore
City = San Francisco
Das war’s für einen schnellen Überblick über json-simple. Wenn Sie jedoch mit komplexen JSON-Daten arbeiten möchten, sollten Sie Jackson oder Gson verwenden. Sie können auch JSR353 ausprobieren, der in Java 7 hinzugefügt wurde.