ホームページ >Java >&#&チュートリアル >Java で URL から JSON データを効率的に解析するにはどうすればよいですか?

Java で URL から JSON データを効率的に解析するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-21 04:12:14738ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。