-
JavaのJacksonライブラリでJSONとMapを相互変換する方法
JacksonはJava向けの高性能なJSON処理ライブラリで、強力なデータバインディング機能を備えています。カスタムJavaオブジェクトをJSONにシリアライズしたり、JSONをJavaオブジェクトにデシリアライズしたりするためのフレームワークを提供します。JSONとMapの相互変換には、com.fasterxml.jackson.databind.ObjectMapperクラスが提供するreadValue()メソッドとwriteValueAsString()メソッドを使用します。事前準備:Maven依存関係の追加Jacksonを使用するには、まずプロジェクトに依存関係を追加します。Mave
-
JacksonライブラリでJSONを見やすく整形する方法(Java Pretty Print入門)
Jackson APIは、JavaオブジェクトをJSONに変換したり、その逆にJSONをJavaオブジェクトへ変換したりできる、Javaベースの人気ライブラリです。他のAPIと比較して処理速度が速く、メモリ消費も少ないため、大きなオブジェクトを扱う場合にも適しています。Jacksonでは、Streaming API、Tree Model、Data Bindingの3つの方式でJSONを処理できます。 JSONを読みやすい形式で出力する(Pretty Print)には、ObjectMapperクラスのwriterWithDefaultPrettyPrinter()メソッドを使用します。このファク
-
JavaのGsonライブラリを使ってJavaオブジェクトをJSONに変換する方法
Gsonは、Googleが開発したJava向けのJSONライブラリです。Gsonを利用することで、JSONの生成はもちろん、BeanやJavaオブジェクトを簡単にJSONオブジェクトへ変換できます。JavaオブジェクトをJSON文字列に変換するには、Gsonクラスが提供するtoJson()メソッドを呼び出すだけです。 toJson()メソッドの構文 public java.lang.String toJson(java.lang.Object src) 引数には変換元となる任意のJavaオブジェクトを渡し、戻り値としてそのオブジェクトをシリアライズしたJSON形式の文字列が返されます。Gson
-
JavaのGsonライブラリでジェネリック型をシリアライズ・デシリアライズする方法
Javaでジェネリック型(総称型)のクラスを扱う際、Gsonライブラリを使用してJSONへのシリアライズ(直列化)やデシリアライズ(逆直列化)を行いたいケースはよくあります。しかし、Javaには「型消去(Type Erasure)」という仕組みがあるため、実行時には List<String> のようなジェネリック型のパラメータ情報が失われてしまうという課題があります。 この問題を解決するために、Gsonライブラリでは com.google.gson.reflect.TypeToken クラスが提供されています。TypeToken の匿名サブクラスを作成してクラス型を渡すことで、ジェ
-
JavaでGSONを使ってJSONオブジェクトのすべてのキーを取得する方法
Gsonは、JavaオブジェクトをJSON形式に変換したり、その逆にJSONをJavaオブジェクトへ変換したりできるGoogleが提供するライブラリです。JSON文字列を対応するJavaオブジェクトに変換することも可能です。JavaプログラムでGsonを利用するには、com.google.gsonパッケージをインポートする必要があります。JSONオブジェクトが持つすべてのキーを取得したい場合は、JsonObjectクラスのentrySet()メソッドを利用します。このメソッドは、キーと値のペア(Map.Entry<String, JsonElement>)を要素とするSetを返すた
-
【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法
GsonライブラリとはGsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。この記事では、Gsonクラスが提供するtoJson()メソッドを
-
JavaでXMLをJSON配列に変換する方法
JSON(JavaScript Object Notation)は、軽量なデータ交換フォーマットであり、キーと値のペア形式でデータを表現します。Javaでは、org.json.XMLクラスを使用することで、XMLをJSON配列へ簡単に変換できます。このクラスが提供する静的メソッドXML.toJSONObject()を使えば、XML文字列をJSONObjectに変換することが可能です。構文public static JSONObject toJSONObject(java.lang.String string) throws JSONExceptionこのメソッドはXML形式の文字列を引数として
-
【Java入門】GsonでカスタムJSONシリアライザーを実装する方法
カスタムシリアライズとはGsonライブラリでは、JavaオブジェクトをJSONに変換する際に、デフォルトの変換ルールではなく独自の変換ロジックを適用したいケースがあります。たとえば、パスワードのマスキング、日付フォーマットの統一、特定フィールドの出力制御などが代表的な例です。このような場合には、GsonBuilderに対してカスタムシリアライザーを登録することで対応できます。カスタムシリアライザーは、com.google.gson.JsonSerializerインターフェースのserialize()メソッドをオーバーライドして作成します。実装例以下は、Studentクラス(学生情報)をJSON
-
JavaでJSONObjectにJSONArrayを追加する方法|put()メソッドの使い方を解説
JSONObjectは、文字列からテキストを解析してMapのようなオブジェクトを生成できるクラスです。同様にJSONArrayは、文字列からテキストを解析してVector(リスト)のようなオブジェクトを生成します。 JSONObjectの中にJSONArrayを追加したい場合は、まず複数の要素を含むJSONArrayを作成し、それをJSONObjectクラスのput()メソッドに渡すだけで実現できます。put()メソッドには第2引数としてCollection型を受け取るオーバーロードが用意されているため、JSONArrayをそのまま値として格納することが可能です。 put()メソッドの構文 p
-
Javaで文字(Character)のリストを文字列に変換する方法
Javaでは、Stream APIとCollectors.joining()を組み合わせることで、文字(Character)のリストを簡単に1つの文字列へ変換できます。この記事では、その基本的な手順とサンプルコードをわかりやすく解説します。 変換の手順 まず、次のような文字のリストがあったとします。 List<Character> list = Arrays.asList(W, e, l, c, o, m, e); このリストを文字列に変換するには、以下のようにstream()、map()、Collectors.joining()を使用します。 String string = li
-
JavaでEnum(列挙型)の値を反復処理する方法
Javaにおける Enumクラス は、Java言語のすべての列挙型(enumeration types)に共通する基底クラスです。このクラスを継承することで、定数の集合を型安全に扱うことができます。ここでは、Enumで定義した列挙値を反復処理(イテレーション)する代表的な方法を2つ紹介します。方法1:forループとvalues()メソッドを使うもっとも基本的な方法は、values() メソッドで取得した配列を拡張for文で回すやり方です。public class Demo { public enum Vehicle { CAR, BUS, BIKE } public stati
-
Javaで回文を判定するプログラムの書き方【数値・文字列の実例付き】
回文(パリンドローム)とは、逆から読んでも同じになる文字列や数値のことです。たとえば、121、313、525 といった数値や、「aba」「wow」のような文字列が回文に該当します。この記事では、Javaを使って回文を判定する方法を、数値の場合と文字列の場合の2つのパターンに分けて、サンプルコードと実行結果とともにわかりやすく解説します。回文数をチェックする方法数値が回文かどうかを判定するには、元の数値を1桁ずつ取り出して逆順に組み立て直し、元の値と比較します。具体的には、剰余演算(%10)で末尾の桁を取り出し、それを結果変数に10倍しながら加算していくことで反転した数値を作れます。サンプルコー
-
Javaで文字列内の各文字の出現回数をカウントする方法(HashMap活用)
Javaで文字列に含まれる各文字が何回出現するかをカウントしたい場面は多くあります。例えば、テキスト解析やデータ処理の前処理などです。本記事では、HashMapを使って効率的に各文字の出現回数を数える方法を解説します。 対象となる文字列 今回は、次の文字列を例にして説明します。 String myStr = thisisit; この文字列「thisisit」には、t・h・i・s の4種類の文字が含まれており、それぞれの出現回数を求めるのがゴールです。 カウントの仕組み:HashMapを使ったアプローチ 文字ごとの出現回数を管理するために、キーに文字(Character)、値に出現回数(Inte
-
JavaにおけるJSONTokenerクラスの重要性とは?主なメソッドと使い方を解説
JSONTokenerクラスは、文字列をトークン(token)単位に分解するためのユーティリティクラスです。JSONObjectやJSONArrayのコンストラクタ内部でも利用されており、JSON形式のソース文字列を解析(パース)する際の基盤となる重要な役割を担っています。 JSONTokenerの主なメソッド JSONTokenerクラスには、以下のような重要なメソッドが用意されています。 back():読み取り位置(カーソル)を1文字分後ろへ戻します。 more():まだ読み取るべき要素が残っている場合はtrue、残っていない場合はfalseを返します。 next():現在位置の次の1文
-
JavaのGsonでカスタムJSONデシリアライザーを実装する方法を解説
JavaでJSONとオブジェクトを相互変換する際、Gsonライブラリは非常に便利なツールです。標準的な変換だけでなく、GsonBuilderにカスタムデシリアライザー(逆シリアル化処理)を登録することで、JSONからJavaオブジェクトへの変換ロジックを自由に制御できます。カスタムデシリアライザーを作成するには、com.google.gson.JsonDeserializerインターフェースのdeserialize()メソッドをオーバーライドします。これにより、特定のクラスに対して独自の変換処理を適用できるようになります。カスタムデシリアライズの実装例以下の例では、JSON文字列内のパスワード
-
【Java】JacksonのJsonNodeでJSONフィールド・配列・ネストされたオブジェクトにアクセスする方法
JsonNodeとは、JSONを扱うためのJacksonのツリーモデルです。JSONデータをJsonNodeインスタンスとして読み込んだり、逆にJsonNodeからJSON形式で出力したりすることができます。Jacksonを使ってJSONをJsonNodeとして読み込むには、まずObjectMapperクラスのインスタンスを作成し、readValue()メソッドを呼び出します。読み込んだノードに対しては、get()メソッドを使用することで、フィールド(プロパティ)、配列、ネストされたオブジェクトにアクセスできます。さらに、asText()メソッドでノードの値を文字列として取得したり、asInt
-
Javaのorg.jsonライブラリでJSONを整形表示(Pretty Print)する方法
JSONは、軽量でテキストベース、かつ言語に依存しないデータ交換フォーマットです。JSONObjectは文字列からテキストを解析し、Mapのようなオブジェクトを生成できます。このオブジェクトには、内容を操作するためのメソッドや、JSON準拠のシリアライズを行うためのメソッドが用意されています。org.jsonパッケージは、JavaにおけるJSONのエンコーダー/デコーダーを実装しており、JSON・XML・HTTPヘッダー・Cookie・CDL間の相互変換機能も提供しています。JSONを整形表示(Pretty Print)するにはJSONを読みやすい形式で出力するには、org.json.JSON
-
Javaで文字列内の母音をカウントする方法をわかりやすく解説
Javaでは、拡張forループと条件分岐を組み合わせることで、文字列に含まれる母音(a、e、i、o、u)の数を簡単にカウントできます。この記事では、基本的な実装方法をサンプルコード付きで解説します。 カウントの仕組み まず、カウント用の変数 count を 0 で初期化します。これは、母音の数をこの変数に加算していくためです。 次に、toCharArray() メソッドを使って文字列を1文字ずつ取り出し、Character.toLowerCase() ですべて小文字に変換します。これにより、大文字・小文字を区別せずに母音を判定できるようになります。 for(char ch : myStr.t
-
JavaのGsonライブラリで日付をフォーマットする方法|setDateFormat()の使い方
Gsonは、Googleが開発したJava向けのJSONライブラリです。Gsonを利用すると、JavaオブジェクトからJSON文字列を生成したり、その逆にJSONをJavaオブジェクトへ変換したりすることができます。 Gsonインスタンスを作成するには、まずGsonBuilderのインスタンスを生成し、create()メソッドを呼び出します。そして、Dateオブジェクトを任意の日付形式でシリアライズしたい場合は、setDateFormat()メソッドを使用します。このメソッドに日付パターンを渡すことで、Gsonは指定されたパターンに従ってDateオブジェクトをJSON文字列へ変換します。 構文
-
JavaでGsonのバージョン管理機能を有効にする方法
Gsonライブラリは、読み書きするJavaオブジェクトに対してシンプルなバージョン管理システムを提供しています。このバージョン管理を実現するために、@Sinceアノテーションが用意されており、@Since(バージョン番号)のように記述して使用します。 Gsonインスタンスをバージョン管理対応で生成するには、GsonBuilder().setVersion()メソッドを使用します。例えばsetVersion(2.0)と指定した場合、@Sinceアノテーションに2.0以下のバージョンが設定されたフィールドのみがシリアライズ・デシリアライズの対象となります。 構文 public GsonBuilde