JSON von URL abrufen in Java
In diesem Handbuch erfahren Sie, wie Sie JSON von einer URL in Java abrufen. Die URLs sind APIs mit Daten, die Sie zur weiteren Verwendung in JSON konvertieren können. Wir gehen davon aus, dass Sie bereits mit den grundlegenden Konzepten von JSON in Java vertraut sind.
JSON von einer URL abrufen in Java
Es sind unzählige JSON-URL-Beispiele online verfügbar. Nachdem Sie dieses Handbuch gelesen haben, können Sie auch hier besuchen und jede JSON-URL testen. Wir werden die in solchen APIs gespeicherten Daten lesen und in unserer Ausgabe im JSON-Format darstellen. Wenn wir beispielsweise diese Beispiel-URL (http://ip.jsontest.com/) öffnen, wird eine Webseite mit der folgenden Ausgabe im JSON-Format geöffnet.
Wenn wir diese Beispiel-URL (http://headers.jsontest.com/) verwenden, wäre die Ausgabe ähnlich wie folgt.
Sehen wir uns nun an, wie wir das gleiche JSON-Format aus der URL abrufen können. Wir nehmen die gleichen zwei Beispiele wie oben.
Codebeispiel:
import java.io.*;
import java.net.*;
import java.nio.charset.*;
import org.json.*;
public static void main(String[] args) throws IOException, JSONException {
String url = "http://ip.jsontest.com/"; // example url which return json data
ReadJson reader = new ReadJson(); // To ReadJson in order to read from url.
JSONObject json = reader.readJsonFromUrl(url); // calling method in order to read.
System.out.println(json.toString()); // simple for printing.
}
Im obigen Codebeispiel speichern wir innerhalb der main-Funktion eine URL in einer Zeichenkette. Um Daten aus der URL zu lesen, haben wir einen Objektleser erstellt. Wir haben die Methode readJsonFromUrl aufgerufen und in den Object Reader integriert. Mal sehen, wo die Magie passiert.
Innerhalb von readJsonFromUrl
public JSONObject readJsonFromUrl(String link) throws IOException, JSONException {
InputStream input = new URL(link).openStream();
// Input Stream Object To Start Streaming.
try { // try catch for checked exception
BufferedReader re = new BufferedReader(new InputStreamReader(input, Charset.forName("UTF-8")));
// Buffer Reading In UTF-8
String Text = Read(re); // Handy Method To Read Data From BufferReader
JSONObject json = new JSONObject(Text); // Creating A JSON
return json; // Returning JSON
} catch (Exception e) {
return null;
} finally {
input.close();
}
}
In der obigen Funktion wird der Link einem Eingang zugewiesen, der den Streaming-Vorgang startet. Um den Text aus dem Zeicheneingabestrom zu lesen, müssen wir die Zeichen für ein effizientes Lesen zwischenspeichern. Erfahren Sie mehr über Puffer hier. Das obige Beispiel wird im UTF-8 Format gepuffert. Um Daten aus BufferReader zu lesen, haben wir eine weitere öffentliche Funktion erstellt, Read
.
Innerhalb der Funktion Lesen
public String Read(Reader re) throws IOException { // class Declaration
StringBuilder str = new StringBuilder(); // To Store Url Data In String.
int temp;
do {
temp = re.read(); // reading Charcter By Chracter.
str.append((char) temp);
} while (temp != -1);
// re.read() return -1 when there is end of buffer , data or end of file.
return str.toString();
}
In Read speichern wir einfach URL-Daten in einem String mit der do...while
-Schleife. Wir lesen Zeichen für Zeichen und speichern jedes von ihnen in der Temperatur. Mit Typecasting haben wir alle Daten in Zeichen innerhalb von str
. str
als String, der in Text
in der Funktion readJsonFromUrl
gespeichert ist, wird zurückgegeben. Wir erstellen ein JSON mit JSONObject
und geben es zurück.
Um das obige Programm auszuführen, müssen wir den folgenden Befehl verwenden.
javac -cp 'org.json.jar' ReadJson.java
java -cp 'org.json.jar' ReadJson.java
Die Ausgabe für die Beispiel-URL (http://ip.jsontest.com/) sieht wie folgt aus.
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn