Parsing JSON from a URL in Java
While reading and parsing JSON from a URL in Java may seem straightforward, seemingly verbose examples can lead to confusion. However, with the help of third-party libraries, the process can be significantly simplified.
JSON Parsing with org.json
Utilizing the Maven artifact org.json:json provides a more concise solution:
JsonReader.java
import org.json.JSONException; import org.json.JSONObject; import java.io.*; import java.net.URL; import java.nio.charset.Charset; public class JsonReader { // Utility method to read a stream and return its contents as a string private static String readAll(Reader rd) throws IOException { StringBuilder sb = new StringBuilder(); int cp; while ((cp = rd.read()) != -1) { sb.append((char) cp); } return sb.toString(); } // Method to read a JSON response from a URL and return it as a JSONObject public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException { InputStream is = new URL(url).openStream(); try { BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); String jsonText = readAll(rd); JSONObject json = new JSONObject(jsonText); return json; } finally { is.close(); } } public static void main(String[] args) throws IOException, JSONException { // Example usage: reading from Facebook's Graph API JSONObject json = readJsonFromUrl("https://graph.facebook.com/19292868552"); System.out.println(json.toString()); System.out.println(json.get("id")); } }
Example Usage
In the main method, you can see an example of retrieving data from Facebook's Graph API, printing both the full JSON response and extracting a specific value (the "id" property).
Conclusion
This improved solution provides a concise and efficient way to read and parse JSON data from a URL in Java, greatly simplifying the task.
The above is the detailed content of How Can I Efficiently Parse JSON Data from a URL in Java?. For more information, please follow other related articles on the PHP Chinese website!