【Java】JacksonライブラリでListをJSON配列に変換する方法
ObjectMapperクラスは、Jackson APIにおいて最も重要なクラスです。readValue()メソッドとwriteValue()メソッドを提供しており、JSONからJavaオブジェクトへの変換、またその逆であるJavaオブジェクトからJSONへの変換を行うことができます。
JavaのListをJSON配列に変換するには、ObjectMapperクラスが持つwriteValueAsString()メソッドを使用します。このメソッドは、任意のJavaの値をJSON形式の文字列としてシリアライズできる汎用的なメソッドです。
writeValueAsString()メソッドの構文
public String writeValueAsString(Object value) throws JsonProcessingException
引数として渡されたオブジェクトをJSON文字列に変換して返します。処理中にシリアライズに失敗した場合は、JsonProcessingExceptionがスローされるため、例外処理が必要です。
ListをJSON配列に変換するサンプルコード
以下は、ArrayListに格納した複数の文字列を、writeValueAsString()メソッドを使ってJSON配列に変換する例です。writerWithDefaultPrettyPrinter()を組み合わせることで、インデント付きの整形されたJSONを出力できます。
import java.util.*;
import com.fasterxml.jackson.databind.*;
public class ListToJSONArrayTest {
public static void main(String args[]) {
List<String> list = new ArrayList<>();
list.add("JAVA");
list.add("PYTHON");
list.add("SCALA");
list.add(".NET");
list.add("TESTING");
ObjectMapper objectMapper = new ObjectMapper();
try {
String json = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(list);
System.out.println(json);
} catch(Exception e) {
e.printStackTrace();
}
}
}
実行結果
[ "JAVA", "PYTHON", "SCALA", ".NET", "TESTING" ]
補足:Jacksonの依存関係の追加
Jacksonを使用するには、あらかじめプロジェクトに依存関係を追加しておく必要があります。Mavenの場合は、pom.xmlに以下を記述します。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.1</version>
</dependency>
まとめ
- JSONとJavaオブジェクトの相互変換には、JacksonのObjectMapperクラスを使うのが基本です。
- ListをJSON配列に変換するには、writeValueAsString()メソッドを利用します。
writerWithDefaultPrettyPrinter()を使うと、見やすい整形済みJSONを簡単に出力できます。
-
【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法
GsonライブラリとはGsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。この記事では、Gsonクラスが提供するtoJson()メソッドを
-
Javaのjson-simpleライブラリを使ってJSON文字列をJavaオブジェクトに変換する方法
JSON(JavaScript Object Notation)は、広く利用されているデータ交換フォーマットの一つです。軽量であり、プログラミング言語に依存しないという特徴を持っています。 json-simpleは、JSONテキストのエンコード(生成)やデコード(解析)を行うための、シンプルで軽量なJava用JSON処理ライブラリです。依存関係が少なく導入も容易なため、小規模なプロジェクトや学習用途に適しています。 以下のサンプルプログラムでは、json-simpleライブラリを使用して、JSON形式の文字列をJavaオブジェクトに変換する方法を紹介します。 サンプルコード import or