JacksonでJSONパーサーのデフォルト設定を確認する方法(Java)
JSONパーサーのすべてのデフォルト設定は、JsonParser.Feature列挙型で表現できます。JsonParser.Feature.values()メソッドを呼び出すと、JSONパーサーで利用可能なすべての機能(フィーチャー)の一覧を取得できます。さらに、特定のパーサーにおいて各機能が有効か無効かを判定するには、JsonParserのisEnabled()メソッドを使用します。
構文
public static enum JsonParser.Feature extends Enum<JsonParser.Feature>
使用例
以下のコードでは、JsonFactoryからJsonParserを作成し、すべての機能について有効・無効の状態を出力しています。
import com.fasterxml.jackson.core.*;
import java.io.*;
public class JsonParserSettingsTest {
public static void main(String[] args) throws IOException {
String json = "[{\"name\":\"Adithya\", \"age\":\"30\"}," + "{\"name\":\"Ravi\", \"age\":\"35\"}]";
JsonFactory jsonFactory = new JsonFactory();
JsonParser jsonParser = jsonFactory.createParser(json);
for(JsonParser.Feature feature : JsonParser.Feature.values()) {
System.out.println(feature.name() + ":" + jsonParser.isEnabled(feature));
}
}
}実行結果
AUTO_CLOSE_SOURCE:true ALLOW_COMMENTS:false ALLOW_YAML_COMMENTS:false ALLOW_UNQUOTED_FIELD_NAMES:false ALLOW_SINGLE_QUOTES:false ALLOW_UNQUOTED_CONTROL_CHARS:false ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER:false ALLOW_NUMERIC_LEADING_ZEROS:false ALLOW_NON_NUMERIC_NUMBERS:false ALLOW_MISSING_VALUES:false ALLOW_TRAILING_COMMA:false STRICT_DUPLICATE_DETECTION:false IGNORE_UNDEFINED:false INCLUDE_SOURCE_IN_LOCATION:true
主な機能の解説
- AUTO_CLOSE_SOURCE:パーサーが閉じられたときに、元となる入力ストリームも自動的にクローズします。デフォルトはtrueです。
- ALLOW_COMMENTS:JSON内にコメント(// や /* */)を含めることを許可します。デフォルトはfalseです。
- ALLOW_SINGLE_QUOTES:文字列をシングルクォート(')で囲むことを許可します。デフォルトはfalseです。
- ALLOW_TRAILING_COMMA:配列やオブジェクトの末尾に余分なカンマがあることを許可します。デフォルトはfalseです。
- STRICT_DUPLICATE_DETECTION:重複するフィールド名を検出した場合にエラーとします。デフォルトはfalseです。
このように、isEnabled()メソッドとFeature.values()を組み合わせることで、パーサーの現在の設定状態を簡単に一覧表示・確認することができます。
-
Java 9のJShellでデフォルトエディタを変更する方法
JShellは、Java 9から導入されたREPL(Read-Evaluate-Print Loop)ツールです。コマンドラインからコードを読み込み、入力されたスニペットを評価し、その結果を画面に出力してくれます。 JShellのデフォルトエディタを変更する手順 JShellでは、デフォルトの「JShell Editor Pad」を使ってコードを編集できます。さらに、「/set」コマンドを使用すれば、デフォルトエディタを別のものに変更することも可能です。「/edit」コマンドを実行すると、設定されたエディタが起動されます。エディタを変更するには、次のコマンドを実行します。 /set edito
-
JavaでJsonPointerインターフェースを使用してJSONのキーの値を取得する方法
JSONPointerは、JSONドキュメント内の特定のキーの値へアクセスするための文字列構文を定義した標準規格です。Jsonクラスの静的ファクトリメソッドであるcreatePointer()を呼び出すことで、JSONPointerのインスタンスを生成できます。JSONPointerでは、すべての文字列構文がスラッシュ「/」で始まるのが特徴です。キーの値を取得するには、JSONPointerオブジェクトに対してgetValue()メソッドを呼び出します。 前提条件 この記事のコードを実行するには、Java EE / Jakarta EEに含まれるJSON Processing(JSON-P)の