Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJSONを解析する方法

このチュートリアルでは、さまざまなライブラリを使用してJavaでJSONを解析する方法を見ていきます。

JSONはJavaScriptObjectNotationの略で、JavaScriptのサブセットに基づいています。

データ交換フォーマットとして、Webプログラミングで広く使用されています。ここでは、org.jsonを使用してJavaでJSONを解析する方法を示します。 ライブラリ。

JSONオブジェクトは、順序付けされていないキーと値のペアのセットです。 JSON配列は、順序付けられた値のコレクションです。値自体はオブジェクトまたは配列である可能性があります。

pageNameの値を取得する例として、このJSONを解析します。 、pagePic およびpost_id

{
    "pageInfo": {
            "pageName": "Homepage",
            "logo": "https://www.example.com/logo.jpg"
    },
    "posts": [
            {
                "post_id": "0123456789",
                "actor_id": "1001",
                "author_name": "Jane Doe",
                "post_title": "How to parse JSON in Java",
                "comments": [],
                "time_of_post": "1234567890"
            }
    ]
}

org.jsonを使用してJSONを解析する

org.jsonを使用してJavaでJSONを解析するには、ライブラリを依存関係として追加する必要があります。これはMavenリポジトリから取得できます

import org.json.JSONArray;
import org.json.JSONObject;

public class ParseJSON {
    static String json = "...";
    public static void main(String[] args) {
        JSONObject obj = new JSONObject(json);
        String pageName = obj.getJSONObject("pageInfo").getString("pageName");

        System.out.println(pageName);

        JSONArray arr = obj.getJSONArray("posts");
        for (int i = 0; i < arr.length(); i++) {
            String post_id = arr.getJSONObject(i).getString("post_id");
            System.out.println(post_id);
        }
    }
}

N.B. ... JSON文字列に置き換える必要があります。わかりやすくするために、これは上記のコードから省略されています。

まず、JSONObjectクラスを使用してJSON文字列をJSONオブジェクトに変換する必要があります。

また、「pageInfo」はJSONオブジェクトであるため、getJSONObjectメソッドを使用することに注意してください。

同様に、「posts」はJSON配列であるため、getJSONArrayメソッドを使用する必要があります。

関連:

  • JavaオブジェクトをJSONに変換する方法
  • JavaマップをJSONに変換する方法
  • JSONをエンコードおよびデコードする方法

Gsonを使用してJSONを解析する

Gsonを使用してJavaでJSONを解析するには、ライブラリを依存関係として追加する必要があります。 Mavenリポジトリから最新バージョンを入手できます

以下の例は、Gsonを使用して上記のJSONを解析する方法を示しています。

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ParseJSON {
    static String json = "...";
    public static void main(String[] args) {
        JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();

        String pageName = jsonObject.getAsJsonObject("pageInfo").get("pageName").getAsString();
        System.out.println(pageName);

        JsonArray arr = jsonObject.getAsJsonArray("posts");
        for (int i = 0; i < arr.size(); i++) {
            String post_id = arr.get(i).getAsJsonObject().get("post_id").getAsString();
            System.out.println(post_id);
        }
    }
}

前の例のように、... JSON文字列に置き換える必要があります。

JsonPATHを使用してJSONを解析する

上記の2つの例では、対象のプロパティの値にアクセスする前に、JSONをJavaオブジェクトに完全に逆シリアル化する必要があります。このルートを使用しないもう1つの方法は、JSONのXPathに似たJsonPATHを使用し、JSONオブジェクトのトラバースを可能にすることです。

以前と同様に、依存関係としてJsonPATHを追加する必要があります。これは、Mavenリポジトリから取得できます

たとえば、上記のJSONを解析するには、次を使用できます。

import com.jayway.jsonpath.JsonPath;

public class ParseJSON {
    static String json = "...";
    public static void main(String[] args) {
        String pageName = JsonPath.read(json, "$.pageInfo.pageName");
        System.out.println(pageName);

        Integer posts = JsonPath.read(json, "$.posts.length()");

        for(int i=0; i < posts; i++) {
            String post_id = JsonPath.read(json, "$.posts[" + i + "].post_id");
            System.out.println(post_id);
        }
    }
}

  1. AndroidでJSONを解析する方法は?

    この例は、AndroidでJSONを解析する方法を示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −次のコードをres / layout/activity_main.xmlに追加します。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://schemas.

  2. JavaでJSONオブジェクトをファイルに書き込むにはどうすればよいですか?

    JSON 広く使用されているデータ交換の1つです フォーマットし、軽量 および言語 独立 。 json.simple は、JSONファイルの書き込みに使用できる軽量のJSON処理ライブラリです。 エンコードに使用できます またはデコード JSONテキストであり、 Jに完全に準拠しています SON仕様(RFC4627)。 JSONファイルを読み取るには、 json-simple.jarをダウンロードする必要があります ファイルを作成し、それを実行するためのパスを設定します。 例 import java.io.*; import java.util.*; import org.json.s