HOWTO · Java

Java で JSON データを文字列に変換する

このチュートリアルでは、JSON データを Java で文字列に変換する方法について説明します。

JavaScript Object Notation として完全に知られている JSON は、データを転送および保存するためのテキスト形式です。 分かりやすく自己紹介です。

JSON は、データ交換用の軽量形式です。 JavaScript オブジェクト表記を組み合わせたプレーンテキストを使用します。

さらに、JSON は言語に依存しないため、任意のプログラミング言語を使用してデータを簡単に作成、変更、または保存できます。

特定のデータの抽出などのさまざまな操作を実行するために、JSON データを文字列に変換する必要がある場合があります。 この記事では、JSON データまたはファイルを文字列に変換する方法を示します。

また、トピックを簡単にするために、必要な例と説明を使用してトピックについて説明します。

Java で文字列から JSON データを作成する

まず、JSON データを文字列に変換する方法を確認します。

以下の例では、JSON オブジェクトを文字列に変換します。 この例のコードは次のようになります。

import org.json.CDL;
import org.json.JSONArray;
import org.json.JSONTokener;

public class JavaArticles {
  public static void main(String[] args) {
    String JsonData = "CANADA, UK, USA"; // Taking the JSON data as string

    JSONArray JsonArray =
        CDL.rowToJSONArray(new JSONTokener(JsonData)); // Converting to the JSON array
    System.out.println(JsonArray); // Printing the JSON array

    System.out.println(CDL.rowToString(JsonArray));

    JsonArray = new JSONArray(); // Creating a JSON array object.
    JsonArray.put("ID"); // Put a field to JSON array name `ID`
    JsonArray.put("Name"); // Put a field to JSON array name `Name`
    JsonArray.put("Age"); // Put a field to JSON array name `Age`
    JsonData = "1, Alex, 25 \n"
        + "2, Robert, 30 \n"
        + "3, Micle, 27"; // Taking the JSON data as string
    System.out.println(CDL.toJSONArray(JsonArray, JsonData)); // Printing the JSON data
  }
}

上記の例は、文字列から JSON ファイルを生成する方法を示しています。 また、コード内の各行の目的は既に提供されています。

上記のプログラムを実行すると、以下のような出力が得られます。

["CANADA","UK","USA"]
CANADA,UK,USA

[{"Age":"25","ID":"1","Name":"Alex"},{"Age":"30","ID":"2","Name":"Robert"},{"Age":"27","ID":"3","Name":"Micle"}]

Java で JSON ファイルを文字列として読み取る

次に、JSON ファイルを文字列として読み取る方法を見ていきます。

次の例では、JSON ファイルのコンテンツを抽出し、それを文字列に変換します。 たとえば、次のような JSON ファイルがあるとします。

{
  "name":"Thomas",
  "age":22,
  "hobbies":["Gardening","Swimming"],
  "languages":{"English":"Advanced"}
}

サンプルコードのコードを以下に示します。

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

public class ReadJsonFileAsString {
  public static void main(String[] args) throws Exception {
    String Myfile = "test/resources/myFile.json";
    String JsonData = readFileAsString(Myfile);
    System.out.println(JsonData);
  }
  public static String readFileAsString(String Myfile) throws Exception {
    return new String(Files.readAllBytes(Paths.get(Myfile)));
  }
}

上記の例では、最初に文字列変数でファイルの場所を取得します。 その後、コードの最後に定義された readFileAsString() メソッドを使用してファイルを読み取ります。

このメソッドは文字列を返します。 その文字列を System.out.println(JsonData); 行に出力します。

この関数では、readAllBytes() メソッドを使用してファイルを読み取り、データを返しました。 プログラムを実行すると、以下のような出力が得られます。

{
  "name":"Thomas",
  "age":22,
  "hobbies":["Gardening","Swimming"],
  "languages":{"English":"Advanced"}
}

JSON を使用する場合は、必要な .jar ファイルをプロジェクトに含めてください。 そうしないと、エラーが発生する可能性があります。

この記事で紹介するコード例は Java で書かれていることに注意してください。 システムに Java が含まれていない場合は、環境に Java をインストールする必要があります。