-
JavaのEnumMapクラスとは?特徴・コンストラクタ・使い方を徹底解説
java.util.EnumMap クラスは、enum(列挙型)のキー専用に設計された特殊な Map 実装です。一般的な HashMap と比べて軽量かつ高速に動作するため、enum をキーとして扱う場面では第一の選択肢となります。 EnumMapの主な特徴 キーは単一のenum型に限定される: EnumMapに格納できるすべてのキーは、マップ作成時に明示的または暗黙的に指定された、同一のenum型から取得する必要があります。異なるenum型のキーを混在させることはできません。 自然順序で維持される: EnumMapは、キーとなっているenum定数が宣言された順序(自然順序)でエントリを保持
-
JavaでGsonのカスタムインスタンスクリエーター(InstanceCreator)を使う方法
JSON文字列をJavaオブジェクトへ変換する(またはその逆を行う)際、Gsonはデフォルトでデフォルトコンストラクタを呼び出してJavaクラスのインスタンスを生成します。しかし、対象となるJavaクラスにデフォルトコンストラクタが存在しない場合や、オブジェクト生成時に何らかの初期設定を行いたい場合には、独自のインスタンスクリエーターを作成してGsonに登録する必要があります。 Gsonでカスタムインスタンスクリエーターを作成するには、InstanceCreatorインターフェースを使用し、createInstance(Type type)メソッドを実装します。 構文 T createInst
-
Flexjsonを使ってJSON文字列をJavaオブジェクトに逆シリアル化する方法
Flexjsonは、JavaオブジェクトとJSON形式の間でシリアライズ(直列化)およびデシリアライズ(逆直列化)を行うための軽量なライブラリです。オブジェクトのディープコピー(深いコピー)とシャローコピー(浅いコピー)の両方をサポートしている点が特徴です。 Flexjsonを使ってJavaプログラムを実行するには、あらかじめflexjsonパッケージをインポートしておく必要があります。 JSONからJavaオブジェクトへの変換(デシリアライズ)には、JSONDeserializerクラスのdeserialize()メソッドを使用します。このメソッドはJSON文字列を入力として受け取り、そのJ
-
【Java】FlexjsonライブラリでJSONを整形出力(Pretty Print)する方法
Flexjsonは、JavaのBean、Map、配列、コレクションなどのオブジェクトをJSON形式でシリアライズ(直列化)・デシリアライズ(非直列化)するための軽量なJavaライブラリです。JSONへの変換を担う中心的なクラスがJSONSerializerです。デフォルトではシャロー(浅い)シリアライズが行われ、オブジェクトの第一階層のフィールドのみが出力されます。ネストしたオブジェクトまで出力したい場合は、include()メソッドで対象のフィールドを明示的に指定します。JSONを見やすい形式で整形出力する(Pretty Print)には、JSONSerializerクラスのprettyPr
-
【Java】Jacksonライブラリでnullや空のフィールドを除外してJSONを出力する方法
JacksonはJava向けの人気ライブラリで、非常に強力なデータバインディング機能を備えています。カスタムJavaオブジェクトをJSONへシリアライズしたり、JSONをJavaオブジェクトへデシリアライズしたりするためのフレームワークを提供しており、REST API開発などで広く利用されています。Jacksonには@JsonIncludeアノテーションが用意されており、シリアライズ時の挙動をクラス単位またはフィールド単位で制御できます。このアノテーションを使うことで、値がnullや空であるフィールドをJSON出力から除外し、無駄のないクリーンなJSONを生成できます。@JsonInclude
-
JavaのJacksonでJSONのフィールド名を変更する方法:@JsonPropertyアノテーションの使い方
@JsonPropertyアノテーションとはJavaでJSONを扱う際に広く使われているライブラリ「Jackson」には、@JsonPropertyというアノテーションが用意されています。このアノテーションは、JSONのシリアライズ(Javaオブジェクト→JSON)やデシリアライズ(JSON→Javaオブジェクト)の処理において、プロパティやメソッドに対して指定することができます。@JsonPropertyには、オプションの「name」パラメータを渡すことができます。これは、Javaクラスのプロパティ名と、JSON側のキー名が異なる場合に非常に便利です。キー名とプロパティ名が一致している場合:
-
JavaでGsonを使ってJSON文字列をツリーモデルとして解析する方法
Gsonライブラリを使用すると、JSON文字列をツリーモデル(Tree Model)として解析(パース)することができます。解析にはJsonParserクラスを利用し、JSON文字列をJsonElement型のツリーモデルへ変換します。取得したJsonElementオブジェクトに対して、以下のメソッドを呼び出すことで、目的の型として要素を取り出すことが可能です。getAsJsonObject() … 要素を JsonObject として取得するgetAsJsonArray() … 要素を JsonArray として取得する構文public JsonObject getAsJsonObject(
-
JavaのGsonストリーミングAPIでファイルを読み書きする方法を解説
GsonのストリーミングAPIを使用すると、ファイルへの読み書きが可能になります。このAPIはシーケンシャル(逐次)読み書きの標準に基づいて設計されており、メモリに全体を読み込まずに処理できるため、大きなJSONデータを扱う際にも効率的です。ストリーミングAPIの中核となるのは、JsonWriterとJsonReaderという2つのクラスです。JsonWriterは、JSONエンコードされた値をストリームへ1トークンずつ書き込みます。ストリームには、文字列・数値・ブール値・nullといったリテラル値に加え、オブジェクトや配列の開始・終了デリミタも含まれます。一方、JsonReaderは、JSO
-
Java(Gson)の@Exposeアノテーションを使ってJSONから特定のフィールドを除外する方法
Gsonライブラリが提供する@Exposeアノテーションを使用すると、シリアライズ(直列化)やデシリアライズ(逆直列化)の対象にフィールドを含めるか除外するかを細かく制御できます。このアノテーションはserializeとdeserializeという2つのboolean型パラメータを受け取ることができ、それぞれにtrueまたはfalseを指定します。@ExposeアノテーションをGsonに反映させるには、通常のnew Gson()ではなく、GsonBuilderクラスを使ってGsonインスタンスを作成し、excludeFieldsWithoutExposeAnnotation()メソッドを呼び出
-
Flexjsonを使ってJSONをJavaの既存オブジェクトにデシリアライズする方法
Flexjsonは、JavaBeans、Map、配列、コレクションなどのJavaオブジェクトをJSON形式でシリアライズ・デシリアライズするための軽量なJavaライブラリです。このライブラリでは、JSONDeserializerクラスが提供するdeserializeInto()メソッドを使用することで、JSON文字列を既存のオブジェクトにデシリアライズできます。 deserializeInto()メソッドは、渡されたJSON入力を既存のターゲットオブジェクトに展開します。このとき、JSON入力に含まれる値は、ターゲットオブジェクトの対応するフィールドの値を上書きします。つまり、JSONに特定の
-
【Java入門】Flexjsonでオブジェクト配列をJSONにシリアライズする方法
Flexjsonは、JavaオブジェクトをJSON形式へシリアライズ(直列化)・デシリアライズ(非直列化)するための軽量ライブラリです。オブジェクトの配列をシリアライズしたい場合も、JSONSerializerクラスが提供するserialize()メソッドを使うだけで簡単に実現できます。このメソッドは、対象インスタンスに対して浅い(shallow)シリアライズを実行します。 serialize()メソッドの構文 public String serialize(Object target) 引数として渡したオブジェクト(ここでは配列)をJSON文字列に変換し、その結果をString型として返しま
-
JavaのGsonにおけるfromJson()メソッドとtoJson()メソッドの違いとは?
Gsonは、Googleが提供するJava向けのJSON処理ライブラリです。JavaオブジェクトとJSONデータを相互に変換できるため、Web APIとの連携や設定ファイルの読み書きなど、幅広い場面で活用されています。 Gsonには代表的な2つのメソッドがあります。fromJson()メソッドはJSON文字列をJavaオブジェクトに変換(デシリアライズ)するためのもので、toJson()メソッドはJavaオブジェクトをJSON文字列に変換(シリアライズ)するためのものです。 fromJson()メソッドは2つの引数を受け取ります。第1引数は解析したいJSON文字列、第2引数はJSON文字列をマ
-
JavaでGsonを使ってシリアライズ時にフィールドを除外する方法
Gsonにおけるtransient修飾子によるフィールド除外 Gsonライブラリでは、transient修飾子を使うことで、シリアライズ対象から特定のフィールドを簡単に除外できます。Javaクラスのフィールドにtransientを付けると、Gsonはシリアライズ(直列化)とデシリアライズ(逆直列化)の両方で、そのフィールドを自動的に無視します。 この仕組みは、パスワードや給与情報などの機密データ、あるいはJSON出力に含める必要のない一時的な値を扱う場合に特に便利です。 コード例 import com.google.gson.*; public class GsonTransientFiel
-
JavaでJSONフィールド名の命名規則を定義する方法【GsonのFieldNamingPolicy解説】
GsonライブラリのFieldNamingPolicyを使用すると、JSONフィールド名に対して標準的な命名規則を簡単に定義できます。GsonBuilderと組み合わせてGsonインスタンスを構成することで、Javaのフィールド名を目的のJSONフィールド名へ自動的に変換可能です。具体的には、GsonBuilderのsetFieldNamingPolicy()メソッドを使い、シリアライズ(直列化)およびデシリアライズ(非直列化)の際に適用される命名ポリシーを指定します。 Gsonがサポートする主なフィールド命名ポリシー FieldNamingPolicy.IDENTITY:シリアライズ時に、
-
JavaのFlexjsonライブラリを使ってMapをJSONにシリアライズする方法
Flexjsonは、JavaオブジェクトをJSON形式にシリアライズ(直列化)したり、JSONからJavaオブジェクトへデシリアライズ(復元)したりするための軽量ライブラリです。JSONSerializerクラスのserialize()メソッドを使用すると、Mapオブジェクトも簡単にシリアライズできます。このメソッドは、対象インスタンスに対してシャロー(浅い)シリアライズを実行します。serialize()メソッドの構文public String serialize(Object target)コード例以下の例では、HashMapに文字列とStudentオブジェクトを格納し、JSONSeria
-
JavaのJacksonライブラリで日付をフォーマットする方法|setDateFormat()の使い方を解説
JacksonはJavaベースのライブラリで、JavaオブジェクトをJSONへ変換したり、JSONをJavaオブジェクトへ変換したりする際に非常に便利です。Jackson APIは他のAPIよりも処理速度が速く、必要なメモリ領域も少ないため、大きなオブジェクトの処理にも適しています。 日付のフォーマットを行うには、ObjectMapperクラスのsetDateFormat()メソッドを使用します。このメソッドは、日時の値を文字列としてシリアライズする際、またJSON文字列からデシリアライズする際に適用される、デフォルトのDateFormatを設定するためのものです。 構文 public Obj
-
JavaでGsonを使って重複キーなしのJSONを解析する方法
Gsonは、Googleが開発したJava向けのJSONライブラリです。Gsonを利用することで、JSONの生成や、JSONからJavaオブジェクトへの変換を簡単に行うことができます。Gsonインスタンスを作成するには、GsonBuilderクラスのインスタンスを生成し、create()メソッドを呼び出します。 重複キーを持たないJSONを解析する場合は、TypeTokenクラスを使用します。Map型の型リテラル(Type Literal)を作成したいときは、空の匿名内部クラス(匿名サブクラス)を定義するのが一般的な手法です。Mapではキーの重複が許されないため、もしJSONに同じキーが含まれ
-
JavaのJacksonライブラリでPOJOをXMLに変換する方法
```html JacksonはJavaベースの人気ライブラリで、主にJavaオブジェクトとJSONの相互変換に利用されますが、jackson-dataformat-xmlモジュールを組み合わせることで、XML形式への変換にも簡単に対応できます。Jackson APIは他のライブラリと比較して処理速度が速く、必要なメモリ領域も少ないため、大きなオブジェクトを扱う場合でも高いパフォーマンスを発揮します。 POJO(Plain Old Java Object)をXML形式に変換するには、XmlMapperクラスのwriteValueAsString()メソッドを使用します。このメソッドの引数として
-
JavaのJacksonライブラリを使ってXMLをPOJOに変換する方法
JacksonはJava向けの強力なライブラリで、優れたデータバインディング機能を備えています。JSONとJavaオブジェクト間のシリアライズ・デシリアライズを簡単に行えるフレームワークを提供しており、多くのJavaプロジェクトで標準的に利用されています。 実は、JacksonはJSONだけでなくXML形式のデータをPOJO(Plain Old Java Object)に変換することも可能です。その際に活用するのが、jackson-dataformat-xmlモジュールに含まれるXmlMapperクラスです。XmlMapperクラスのreadValue()メソッドを使うことで、XML文字列やス
-
GsonでJSON配列をJavaのジェネリック型Listにデシリアライズする方法
Gsonライブラリには、ジェネリック型の情報を保持するための com.google.gson.reflect.TypeToken クラスが用意されています。TypeToken を継承した匿名サブクラスを作成して対象のクラス型を指定することで、Gson はジェネリッククラスに渡された実際の型を正しく認識できるようになります。 構文 public class TypeToken<T> extends Object Java の型消去(Type Erasure)の仕様上、実行時にはジェネリック型のパラメータ情報が失われます。しかし、TypeToken を使えば匿名サブクラス経由でその型情