首页 >Java >java教程 >如何在 Java 中高效解析 URL 中的 JSON 数据?

如何在 Java 中高效解析 URL 中的 JSON 数据?

Linda Hamilton
Linda Hamilton原创
2024-12-21 04:12:14698浏览

How Can I Efficiently Parse JSON Data from a URL in Java?

在 Java 中从 URL 解析 JSON

虽然在 Java 中从 URL 读取和解析 JSON 可能看起来很简单,但看似冗长的示例可能会导致混乱。但是,在第三方库的帮助下,可以显着简化该过程。

使用 org.json 进行 JSON 解析

利用 Maven 工件 org.json: json 提供了更简洁的解决方案:

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"));
    }
}

使用示例

在main方法中可以看到一个例子从 Facebook 的 Graph API 检索数据、打印完整的 JSON 响应并提取特定值(“id”)

结论

这个改进的解决方案提供了一种简洁高效的方法来从 Java 中的 URL 读取和解析 JSON 数据,极大地简化了任务。

以上是如何在 Java 中高效解析 URL 中的 JSON 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn