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

JavaでJSONファイルを文字列(String)として読み込む方法

この記事では、JavaでJSONファイルをString型の変数として読み込む方法を解説します。特にAPIテストの際に、エンドポイントへJSONペイロードをPOSTしたいケースなどで非常に便利なテクニックです。

JSONペイロードをあらかじめファイルとして保存しておき、そのファイルを文字列として読み込めば、POSTリクエストのボディとしてそのまま利用できます。

JSONファイルを文字列として読み込む基本手法

まず、以下の場所にJSONファイルが配置されているものと仮定します。

src/test/resources/myFile.json

{
  "name":"David",
  "age":30,
  "hobbies":["Football","Cooking","Swimming"],
  "languages":{"French":"Beginner","German":"Intermediate","Spanish":"Advanced"}
}

このJSONファイルを文字列として読み込むには、java.nio.file.FilesクラスとPathsクラスを使用します。具体的な実装例は以下の通りです。

import java.nio.file.Files;
import java.nio.file.Paths;

public class ReadJsonAsString {

    public static void main(String[] args) throws Exception {
        String file = "src/test/resources/myFile.json";
        String json = readFileAsString(file);
        System.out.println(json);
    }

    public static String readFileAsString(String file) throws Exception {
        return new String(Files.readAllBytes(Paths.get(file)));
    }
}

このコードを実行すると、コンソールには以下のようにJSONファイルの中身がそのまま出力されます。

{
  "name":"David",
  "age":30,
  "hobbies":["Football","Cooking","Swimming"],
  "languages":{"French":"Beginner","German":"Intermediate","Spanish":"Advanced"}
}

処理のポイント

Files.readAllBytes()メソッドは、指定されたパスのファイルをすべてバイト配列として一括で読み込むメソッドです。これをnew String()のコンストラクタに渡すことで、バイト配列が文字列に変換されます。ファイル全体を一度に読み込むため、小〜中規模のJSONファイルを扱う場合に適しています。

Java 11以降ならさらに簡単に書ける

Java 11以降を使用している場合は、Files.readString()メソッドを使うことで、バイト配列への変換を意識せず、1行でより簡潔に記述できます。

import java.nio.file.Files;
import java.nio.file.Paths;

public class ReadJsonAsString {
    public static void main(String[] args) throws Exception {
        String json = Files.readString(Paths.get("src/test/resources/myFile.json"));
        System.out.println(json);
    }
}

このようにして読み込んだJSON文字列は、そのままHTTPクライアントのリクエストボディにセットしたり、JacksonやGsonなどのライブラリでパースしたりと、さまざまな用途に活用できます。APIテストの自動化においても、テストデータを外部ファイルとして管理できるため、保守性の向上にもつながります。

  1. Javaでプロパティファイルからデータを読み取る方法を解説

    JavaのPropertiesクラスは、Hashtableクラスのサブクラスであり、永続化可能なプロパティの集合(プロパティセット)を表します。Propertiesオブジェクトはストリームへ保存したり、ストリームから読み込んだりすることができます。また、プロパティリスト内の各キーとそれに対応する値は、どちらも文字列型として扱われます。Javaでは、Propertiesファイルを使うことでアプリケーションの設定情報を外部化し、キーと値(key-value)のペアとして管理できます。Propertiesクラスが提供するload()メソッドを使用すると、.propertiesファイルに記述されたキー

  2. JavaでJSONファイルを作成する方法をわかりやすく解説

    JSON(JavaScript Object Notation)は、人間が読みやすい形式でデータを交換するために設計された、軽量なテキストベースのオープン標準フォーマットです。JSONの記法は、C、C++、Java、Python、Perlなど、多くのプログラミング言語に精通したプログラマーにとって馴染み深いものとなっています。 JSONドキュメントのサンプル 以下は、書籍情報を格納した典型的なJSONドキュメントの例です。 { book: [ { id: 01, language: Java, ed