Last active
April 16, 2021 08:58
-
-
Save niftycode/2ae34e009168f96241f773b3f33ef7c3 to your computer and use it in GitHub Desktop.
Example how to fetch and parse JSON data in Java 11+
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package de.niftycode; | |
import org.json.JSONArray; | |
import org.json.JSONObject; | |
import java.net.URI; | |
import java.net.http.HttpClient; // < New in Java 11, can also handle HTTP/2 requests! | |
import java.net.http.HttpRequest; | |
import java.net.http.HttpResponse; | |
/* | |
Send HTTP requests using the new API | |
(Java 11 and above) | |
This example uses the new java.net.HttpClient which handles | |
asynchronous operations automatically. | |
*/ | |
public class Main { | |
public static void main(String[] args) { | |
String url = "https://xern-statistic.de/api/countries"; | |
HttpClient client = HttpClient.newHttpClient(); | |
HttpRequest request = HttpRequest.newBuilder() | |
.uri(URI.create(url)) | |
.build(); | |
try { | |
client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) | |
.thenApply(HttpResponse::body) | |
.thenApply(Main::parse) | |
.join(); | |
} catch(Exception e) { | |
System.out.println("ERROR!"); | |
System.out.println(e); | |
} | |
} | |
public static String parse(String responseBody) { | |
JSONArray nations = new JSONArray(responseBody); | |
try { | |
for (int i = 0; i < nations.length(); i++) { | |
JSONObject nation = nations.getJSONObject(i); | |
String country = nation.getString("country"); | |
String capital = nation.getString("capital"); | |
String government = nation.getString("government"); | |
int population = nation.getInt("population"); | |
System.out.println("Country: " + country); | |
System.out.println("Capital: " + capital); | |
System.out.println("Government: " + government); | |
System.out.println("Population: " + population); | |
System.out.println("---"); | |
} | |
} catch(Exception e){ | |
System.out.println(e); | |
} | |
return null; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment