Versuchen Sie es mit der JSON-Format-API in Java

Einführung

Derzeit habe ich angefangen, mit API in Java zu entwickeln. Es war mein erstes Mal, dass ich API in Java verwendet habe, und ich habe es geschafft, es zu implementieren, also werde ich es in einem denkwürdigen Sinne schreiben. Zunächst zeige ich Ihnen die allgemeine Umsetzung. Danach werde ich es in den folgenden Abschnitten erklären.

In diesem Abschnitt werden wir uns den Implementierungsteil jedes Abschnitts und seine Erklärung ansehen, während wir uns die Referenzen ansehen.

API-Anfrage und Antwort erhalten

useJson.java


public static JsonNode getResult(String urlString) {
 String result = "";
 JsonNode root = null;
 try {
	URL url = new URL(urlString);
	HttpURLConnection con = (HttpURLConnection)url.openConnection();
	con.connect(); //URL-Verbindung
	BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 
	String tmp = "";
	
       while ((tmp = in.readLine()) != null) {
		result += tmp;
	}

	ObjectMapper mapper = new ObjectMapper();
	root = mapper.readTree(result);
	in.close();
	con.disconnect();
 }catch(Exception e) {
 	e.printStackTrace();
 }

 return root;
}

Stellen Sie eine Verbindung zur API-URL her

useJson.java


URL url = new URL(urlString): //Geben Sie die API-URL einschließlich der Anforderungsparameter an
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.connect(); //Verbindung zur URL herstellen

URL-Klasse

Geben Sie eine Zeichenfolge vom Typ String als Argument an. Zeigen Sie mit einer Zeichenfolge vom Typ "Zeichenfolge" auf das Web. Referenz: Klassen-URL

Was ist ein Zeiger?

Ein Zeiger bezieht sich auf ein Objekt (zeigt auf dieses), wenn auf ihn mit einigen logischen Standortinformationen zugegriffen werden kann.

Die hier genannten logischen Standortinformationen beziehen sich auf den Standort (URL) im Web.

[Referenz: Zeiger (Programmierung)](https://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF_(%E3%83) % 97% E3% 83% AD% E3% 82% B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0))

Was ist logisch?

"Logisch" ist eine Denkweise. Die Bedeutungen von "Theorie" und "Vernunft" sind "Linie" gemeinsam. Darüber hinaus bedeutet "Theorie" auch "diskutieren", und "Vernunft" bedeutet auch "Worte und Prinzipien".

Mit anderen Worten, hier soll ein Weg zur URL gefunden werden (Adresse angeben).

Referenz: Was bedeutet "logisch"? Einführung des Unterschieds zwischen dem Synonym "theoretisch" und den Synonymen Was bedeutet "logisch"?

URLConnection-Klasse

Ermöglichen Sie das Lesen und Schreiben von Ressourcen, auf die in URLs verwiesen wird

openConnection Bearbeiten Sie Parameter, die sich auf Verbindungen zu Remote-Ressourcen auswirken Referenz: Klasse URLConnection

Verwenden Sie BufferedReader, um eine Antwort von der API zu erhalten

useJson fuhr fort.java


String result = "";
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))); //Antwort erhalten
String tmp = "";
while ((tmp = in.readLine) != null){
 result += tmp;
}

BufferedReader-Klasse

Lesen Sie Text effizient aus Zeicheneingabestreams, indem Sie Zeichen, Arrays und Zeilen puffern.

Hier bedeutet es, Text im JSON-Format effizient zu lesen. Referenz: Class BufferedReader

Was ist Pufferung?

Beim Puffern werden Daten zwischen mehreren Geräten und Software ausgetauscht, Unterschiede in der Verarbeitungs- und Übertragungsgeschwindigkeit ausgeglichen und Daten im Falle einer Verzögerung oder Unterbrechung der Kommunikation vorübergehend an einen dedizierten Speicherbereich gesendet und empfangen. Speichern Sie es in.

Mit anderen Worten, speichern Sie einige Daten zu Beginn der Verbindung mit der API mit der Anforderung. Lesen Sie die Antwort sicher und beschleunigen Sie die Verarbeitungsgeschwindigkeit, wenn sie sich zu einem gewissen Grad angesammelt hat. Referenz: Pufferung [Pufferung] Pufferung

InputStreamReader-Klasse

InputStreamReader fungiert als Brücke vom Byte-Stream zum Zeichen-Stream

Hier bedeutet dies, dass die Antwort im JSON-Format in den Zeichenstrom eingefügt wird. Referenz: Klasse InputStreamReader

(HttpURLConnection)con.getInputStream

Gibt einen Eingabestream zurück, der Eingaben von dieser Verbindung empfängt. Beim Lesen aus dem zurückgegebenen Eingabestream wird eine SocketTimeoutException ausgelöst, wenn das Lesezeitlimit abläuft, bevor die Daten lesbar werden.

"Diese Verbindung" ist eine JSON-Antwort. Referenz: getInputStream

in.readLine()

Lesen Sie eine Textzeile.

Lesen Sie die Antwort Zeile für Zeile [Referenz: Zusammenfassung der Klasse BufferedReader Methode readLine ()] (https://docs.oracle.com/javase/jp/8/docs/api/java/io/BufferedReader.html)

Konvertieren Sie eine JSON-Zeichenfolge mit ObjectMapper in ein Java-Objekt

useJson fuhr fort ②.java


JsonNode jsonResult = null; //Initialisieren
ObjectMapper mapper = new ObjectMapper();
jsonResult = mapper.readTree(result);

in.close();
con.disconnect();

ObjectMapper-Klasse

Kann zwischen Java-Objekten und JSON-Zeichenfolgen konvertieren.

Referenz: Jackson-Verwendungsnotiz JSON-Zeichenfolge → Java-Objekt Beschreibung

mapper.readTree(result)

Anschließend liest ObjectMapper.readTree den Stammknoten, wenn die Daten in der JSON-Datei als Baumstrukturdaten als Objekt vom Typ JsonNode verwendet werden. Referenz: Lesen Sie Daten mit Jackson, einer JSON-Bibliothek für Java

Was sind Baumstrukturdaten?

Eine Baumstruktur ist eine der Datenstrukturen, und ein Element (Knoten) hat mehrere untergeordnete Elemente, ein untergeordnetes Element hat mehrere Enkelelemente und je tiefer die Hierarchie, desto verzweigter. Die Struktur. Es wird dies genannt, weil es einem Baum ähnelt, der sich von Stamm zu Zweig und von Zweig zu Blatt verzweigt.

Die Elemente, aus denen die Baumstruktur besteht, werden als Knoten bezeichnet, und die Knoten haben eine Eltern-Kind-Beziehung. Ein Knoten ohne Eltern wird als Wurzelknoten und ein Knoten ohne Kind als Blattknoten bezeichnet.

image.png

[Referenz: Baumstruktur] Baumstruktur ](http://e-words.jp/w/%E6%9C%A8%E6%A7%8B%E9%80%A0.html)

Mit anderen Worten, es ist "readTree", das die Rolle des Erfassens der Daten (Wurzelknoten) am oberen Rand der Baumstruktur spielt.

in.close(); Ende der BufferedReader-Klasse

con.disconnect(); Beendigung (Trennung) der URL-Verbindung

Am Ende

Ich bin müde ... w Ich denke, es sieht so aus, wenn eine Verbindung zu einer API im Json-Format hergestellt wird. Übrigens, wenn Sie mit Json in Java umgehen, müssen Sie einige Bibliotheken einschließen, aber ich denke, es gibt einige, die unnötig sind, also werde ich sie hinzufügen, sobald ich sie verstehe. Folgendes ist derzeit enthalten.

Wenn Sie Vorschläge oder Fragen in diesem Artikel haben, würde ich mich freuen, wenn Sie einen Kommentar abgeben könnten.

Recommended Posts

Versuchen Sie es mit der JSON-Format-API in Java
Versuchen Sie es mit RocksDB mit Java
Versuchen Sie, die Cloud Vision-API von GCP in Java zu verwenden
Versuchen Sie es mit der Syntaxanalyse der COTOHA-API in Java
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Lesen Sie JSON in Java
Formatieren Sie XML in Java
Zabbix API in Java
POST JSON in Java
Erstellen Sie JSON in Java
◆ Rufen Sie die SpringBoot + Gradle REST + JSON-Format-API auf
ChatWork4j für die Verwendung der ChatWork-API in Java
[Java] API-Erstellung mit Jerjey (Jax-rs) mit Eclipse
Versuchen Sie es mit Sourcetrail (Win-Version) mit Java-Code
Versuchen Sie es mit Sourcetrail (MacOS-Version) mit Java-Code
Konvertieren Sie JSON und YAML in Java (mit Jackson und SnakeYAML)
Versuchen Sie, mit Java zu kratzen [Hinweis]
Versuchen Sie, JavaScript in Java aufzurufen
Lassen Sie uns Spresense mit Java entwickeln (1)
Probieren Sie den Funktionstyp in Java aus! ①
Java Stream API in 5 Minuten
POST Json in Java ~ HttpURLConnection ~
Versuchen Sie es mit globalem Hooking in Java mithilfe der JNativeHook-Bibliothek
Json-Serialisierung / Deserialisierung in Java 1.4
Protokollausgabe im Json-Format mit lograge / lograge-sql mit RubyOnRails
Authentifizieren Sie 3 oder mehr Parameter im JSON-Format mit Spring Security
[Java] "T" ist in der API-Antwort im Datumstyp JSON enthalten
[Java] Versuchen Sie, die Elemente der Json-Zeichenfolge mithilfe der Bibliothek zu bearbeiten
Elasticsearch-Vorgang über die REST-API mit Apache HttpClient in Java
Übersetzen mit der Microsoft Translator-Text-API in Java (Japanisch → Englisch)
Tipps zur Verwendung von Salesforce SOAP und Bulk API in Java
Exportieren Sie ein Problem mithilfe der Java-API von JIRA
Verschlüsselung mit RSA-Verschlüsselung in Java
Versuchen Sie, Selenuim 3.141.59 mit Eclipse (Java) auszuführen.
Versuchen Sie es mit Redis mit Java (jar)
Generieren Sie die CloudStack-API-URL in Java
Versuchen Sie einen If-Ausdruck in Java
Treffen Sie Zaims API (OAuth 1.0) in Java
Ich habe versucht, die Java8 Stream API zu verwenden
Analysieren der COTOHA-API-Syntaxanalyse in Java
[Java] Versuchen Sie, mithilfe von Generika zu implementieren
HTTPS-Verbindung mit tls1.2 in Java 6
Ich habe versucht, JWT in Java zu verwenden
Versuchen Sie, AWS X-Ray in Java auszuführen
Versuchen Sie, Yuma in Java zu implementieren
Versuchen Sie es mit der IBM Java-Methodenverfolgung
JPA (Java Persistence API) in Eclipse
Versuchen Sie es mit dem Java SDK von Hyperledger Iroha
[Java] Wo haben Sie versucht, Java zu verwenden?
Versuchen Sie, Werte von Java Servlet mit JSON an die iPhone-App zu übergeben
[Android] Konvertieren Sie Map in JSON mit GSON mit Kotlin und Java
Versuchen Sie es mit dem Java Framework Nablarch [Web Application]
Implementieren Sie API Gateway Lambda Authorizer in Java Lambda
Versuchen Sie, Project Euler in Java zu lösen
Datenverarbeitung mit der Stream-API von Java 8
Studieren Sie Java 8 (Datums-API im Paket java.time)
Versuchen Sie, n-ary Addition in Java zu implementieren
Rufen Sie die Windows-Benachrichtigungs-API in Java auf