ジャクソンの ObjectMapper クラス
オブジェクトマッパー で利用できる最も重要なクラスの 1 つです ジャクソン 図書館。 JSON データの読み取りと書き込みに使用されます。 POJO ファイルとの間のデータの読み取り、および JSON ツリー モデルとの間のデータの読み取りを担当します。
ObjectMapper クラスには次のような特徴があります。
- 次のような高度な概念をサポートします。 ポリモーフィズム そして オブジェクト認識。
- さまざまなスタイルの JSON コンテンツを操作するために非常にカスタマイズ可能です。
- 先進の工場として活躍します オブジェクトリーダー そして オブジェクトライター クラス。
ObjectMapper クラスは次のように宣言されます。
public class ObjectMapper extends ObjectCodec implements Versioned, Serializable
ネストされたクラス
次の表は、ObjectMapper クラスを拡張するクラス、つまり ObjectMapper クラスのネストされたクラスを定義します。
| クラス | 説明 |
|---|---|
| DefaultTypeResolverBuilder | カスタマイズされたものです TypeResolverBuilder 型リゾルバービルダーを取得するために使用されるクラス。これは一緒に使用できます。 「デフォルトの入力」。 |
| デフォルトの入力 | 型の種類を指定するには、enableDefaultTyping() メソッドで列挙型を使用します。 |
ここで、ObjectMapper クラスのフィールド、コンストラクター、メソッドを理解しましょう。
ObjectMapperクラスのフィールド
protected DefaultDeserializationContext _deserializationContext
これは、カスタム サブクラスを許可するために保存されるブループリント コンテキスト オブジェクトです。
protected DeserializationConfig _deserializationConfig
これは、逆シリアル化プロセスの基本的なグローバル設定を定義するために使用される構成オブジェクトです。
保護された JsonFactory
JsonParserとJsonGeneratorのインスタンスを作成するには、JsonFactoryを使用します。
protected InjectableValues _injectableValues
これは、逆シリアル化された POJO に値を挿入するために使用されるプロバイダーです。
protected ConfigOverrides _propertyOverrides
これは、現在アクティブなタイプごとの構成オーバーライドにアクセスするために使用されます。
保護された SimpleMixInResolver _mixIns
これは、ミックスイン アノテーションを適用する方法を定義するために使用されるマッピングです。マッピングは次の方法で行われます。
鍵: 追加の注釈を受け取るには、次のように入力します。
価値: 「混ぜる」注釈を持つ型
protected Set _registeredModuleTypes
登録されているモジュール タイプのセットを定義する Set です。
protected SerializationConfig _serializationConfig
これは、シリアル化プロセスの基本的なグローバル設定を定義するために使用される構成オブジェクトでもあります。
保護された同時ハッシュマップ
これは、ルートレベルのデシリアライザーを追跡するために使用されるマップです。これはメインレベルのマップです。
protected SerializerFactory _serializerFactory
これはシリアライザーを構築するために使用されるファクトリです。
protected SubtypeResolver _subtypeResolver
サブタイプを登録し、必要に応じてそれらをスーパー/サブタイプに対して解決するために使用されます。
保護された TypeFactory _typeFactory
JavaType インスタンスを作成するために使用されるファクトリです。これらは、モジュールがカスタム型処理を追加できるようにするために必要です。
protected DefaultSerializerProvider _serializerProvider
これは、シリアル化に使用されるシリアライザーへのアクセスの管理を担当するオブジェクトです。
保護された静的BaseSettings DEFAULT_BASE
これは、すべての ObjectMapper インスタンスに使用されるデフォルトを含む基本設定です。
ObjectMapper クラスのコンストラクター
ObjectMapper クラスには次のコンストラクターがあります。
| コンストラクタ | 説明 |
|---|---|
| オブジェクトマッパー() | これは、デフォルトを使用するインスタンスを構築するために使用されるデフォルトのコンストラクターです。 Jsonファクトリー、シリアライザープロバイダー、 そして BeanSerializerFactory。 |
| ObjectMapper(JsonFactory ファクトリ) | これは、指定された JsonFactory を使用するインスタンスを構築するために使用されます。指定された JsonFactory は構築に使用されます JsonParsers および/または JsonGenerators。 |
| ObjectMapper(JsonFactory ファクトリ、SerializerProvider プロバイダ 1、DeserializerProvider プロバイダ 2) | 指定されたものを使用するインスタンスを構築するために使用されます。 Jsonファクトリー、シリアライザープロバイダー、 そして デシリアライザープロバイダー。 指定された JsonFactory は構築に使用されます JsonParsers および/または JsonGenerators。 |
| protected ObjectMapper(ObjectMapper マッパー) | copy() をサポートするコピーコンストラクターです。 |
ObjectMapper クラスのメソッド
ObjectMapper クラスは次のメソッドを定義します。
| 方法 | 戻り値の型 | 説明 |
|---|---|---|
| _checkInvalidCopy(クラスexp) | 空所 | 無効なコピーをチェックするために使用されます。 |
| _configAndWriteValue(JsonGenerator g, オブジェクト値) | 空所 | これは、必要に応じてジェネレーターを構成し、書き込み機能を実行するために使用されます。 |
| _convert(Object fromValue, JavaType toValueType) | 物体 | 実際の変換実装を取得するために使用されます。ここでは、コードに読み取りメソッドと書き込みメソッドは使用されません。 |
| _initForReading(JsonParser p) | Jsonトークン | これは、指定されたパーサーがデータ バインディングのコンテンツを読み取る準備ができているかどうかを確認するために使用されます。 |
| _findRootDeserializer(DeserializationContext ctxt、JavaType valueType) | Jsonデシリアライザ | 渡されたルートレベルの値について、デシリアライザーを見つけたい場合は、このメソッドを使用します。 |
| _newReader(DeserializationConfig 構成) 同様の方法:
| オブジェクトリーダー | これはファクトリ メソッドです。つまり、適切なサブタイプの ObjectReader インスタンスを取得するために使用されます。このメソッドを使用するには、サブクラスをオーバーライドする必要があります。 |
| _newWriter(SerializationConfig 構成) 同様の方法:
| オブジェクトライター | これはファクトリ メソッドです。つまり、適切なサブタイプの ObjectWriter インスタンスを取得するために使用されます。このメソッドを使用するには、サブクラスをオーバーライドする必要があります。 |
| _readValue(DeserializationConfig cfg、JsonParser p、JavaType valueType) | 物体 | 値の読み取りとバインド操作を定義するオブジェクトを取得するために使用されます。 |
| _serializerProvider(SerializationConfig 構成) | デフォルトのシリアライザープロバイダー | これは、SerializerProvider の構築に使用されるオーバーライド可能なヘルパー メソッドです。 |
| acceptJsonFormatVisitor(クラス型、JsonFormatVisitorWrapper ビジター) 同様の方法:
| 空所 空所 | 指定された訪問者を使用して特定の型の型階層にアクセスしたい場合は、このメソッドを使用します。 |
| addHandler(逆シリアル化問題ハンドラー h) | オブジェクトマッパー | 逆シリアル化中に指定された問題を処理するには、指定された DeserializationProblemHandler を使用し、ハンドラーを追加するには、このメソッドを使用します。 |
| addMixIn(クラスターゲット、クラスmixinSource) | オブジェクトマッパー | 指定された拡張クラスまたはインターフェースにミックスイン アノテーションを使用するには、このメソッドを使用して追加します。 |
| canDeserialize(JavaType型) | ブール値 | これは、マッパーが指定された型のオブジェクトを逆シリアル化できるかどうかを確認するために使用されます。 |
| canDeserialize(JavaType 型、AtomicReference 原因) | ブール値 | 前の方法と似ています。唯一の違いは、シリアライザーの構築時にスローされたスロー可能オブジェクトを返すことができることです。スロー可能オブジェクトを使用すると、実際の問題を解決できます。 |
| canSerialize(クラス型) | ブール値 | これは、マッパーが指定された型のオブジェクトをシリアル化できるかどうかを確認するために使用されます。 |
| canSerialize(クラスタイプ、AtomicReference原因) | ブール値 | 前の方法と似ています。唯一の違いは、シリアライザーの構築時にスローされたスロー可能オブジェクトを返すことができることです。スロー可能オブジェクトを使用すると、実際の問題を解決できます。 |
| クリア問題ハンドラー() | オブジェクトマッパー | これは、登録されているすべての DeserializationProblemHandlers インスタンスをマッパーから削除するために使用されるメソッドの 1 つです。 |
| configure(DeserializationFeature f, boolean state) 同様の方法:
| オブジェクトマッパー | これは、オン/オフ逆シリアル化、Json ジェネレーター、JsonParser、Mapper、またはオブジェクト マッパー、ジェネレーター インスタンス、パーサー インスタンス、マッパー インスタンス、またはオブジェクト マッパーのシリアル化機能の状態を変更するために使用されます。 |
| 構築タイプ(タイプ t) | JavaType | 明示的なコンテキストを使用せずに、指定された型から JavaType を構築する場合は、このメソッドを使用します。 |
| ConvertValue(オブジェクトから値、クラスから値タイプ) 同様の方法:
| T | 指定された値から指定された値型のインスタンスへの 2 段階の変換を実行する場合は、converValue() メソッドを使用します。 |
| createArrayNode() | 配列ノード | ArrayNode を作成するために使用されます。 |
| defaultClassIntrospector() | クラスイントロスペクター | デフォルトの ClassIntrospector を使用する場合は、この Overridable ヘルパー メソッドを使用して構築します。 |
| disable(DeserializationFeature 機能) 同様の方法:
| オブジェクトマッパー | これは、指定された DeserializationConfig、パーサー インスタンスの JsonGenerator.FEatures、オブジェクト マッパーのパーサー インスタンスの JsonParser.Feature を無効にするために使用されます。 |
| disableDefaultTyping() | オブジェクトマッパー | 多くの場合、型情報の自動組み込みを無効にする必要があるため、この方法を使用します。 |
Enable(DeserializationFeature 機能)
| オブジェクトマッパー | これは、指定された DeserializationConfig、パーサー インスタンスの JsonGenerator.FEatures、オブジェクト マッパーのパーサー インスタンスの JsonParser.Feature を有効にするために使用されます。 |
| EnableDefaultTyping() 同様の方法:
| オブジェクトマッパー | 多態性型の逆シリアル化に型情報の自動組み込みを使用するには、このメソッドを使用してそれを有効にします。 |
| findAndRegisterModules() | オブジェクトマッパー | これは、mapper.registerModules(mapper.findModules()) メソッドに似ています。 |
| findModules() 同様の方法:
| リスト | 利用可能なメソッドを見つけるために使用されます。このメソッドは、モジュールが提供する SPI で JDK ServiceLoader 機能を使用します。 |
| getDateFormat() | 日付形式 | 日付の形式を取得するために使用されます。 |
| getDeserializationConfig() | デシリアライゼーション構成 | これは、共有のデフォルト DeserializationConfig オブジェクトを取得するために使用されます。返されたオブジェクトは、逆シリアル化の構成設定を定義します。 |
| getDeserializationContext() | 逆シリアル化コンテキスト | 現在の DeserializationContext を取得するために使用されます。 |
| getFactory() | Jsonファクトリー | マッパーが Json パーサーとジェネレーターを構築する必要がある場合は、json ファクトリが必要です。これを取得するには、getFactory() メソッドを使用します。 |
| getInjectableValues() | 注入可能な値 | 注入可能な値を取得するために使用されます。 |
| getJsonFactory() | Jsonファクトリー | これは、Json ファクトリを取得するための非推奨のメソッドです。 |
| getNodeFactory() | JsonNodeFactory | これは、ツリーのルート JsonNode インスタンスを直接構築するときにマッパーによって使用される JsonNodeFactory を取得するために使用されます。 |
| getPropertyNamingStrategy() | プロパティネーミング戦略 | 名前が示すように、プロパティの命名戦略に使用されます。 |
| getSerializationConfig() | シリアル化設定 | これは、共有のデフォルト SerializationConfig オブジェクトを取得するために使用されます。返されたオブジェクトは、シリアル化の構成設定を定義します。 |
| getSerializerFactory() | シリアライザーファクトリー | 現在の SerializerFactory を取得するために使用されます。 |
| getSerializerProvider() | シリアライザープロバイダー | これはファクトリのアクセサーであり、DefaultSerializerProvider.createInstance(SerializationConfig, SerializerFactory) を呼び出してインスタンスを作成するために使用されます。 |
| getSerializerProviderInstance() | シリアライザープロバイダー | これは、シリアライザーへのアクセスに使用できる SerializerProvider のインスタンスを構築して返すために使用されるアクセサーです。 |
| getSubtypeResolver() | サブタイプリゾルバー | 使用中のサブタイプ リゾルバーにアクセスするために使用されます。 |
| getTypeFactory() | タイプファクトリー | 現在設定されている TypeFactory のインスタンスを取得するために使用されるアクセサーです。 |
| getVisibilityChecker() | 可視性チェッカー | 現在設定されている可視性チェッカーにアクセスするために使用されます。 |
| isEnabled(逆シリアル化機能 f) 同様の方法:
| ブール値 | isEnable() メソッドとそのバリエーションは、指定された逆シリアル化固有の JsonFactory、JsonGenerator、JsonParser、Mapper、またはシリアル化機能が有効かどうかを確認するために使用されます。 |
| mixInCount() | 整数 | mixInのカウントを取得するために使用されます。 |
| 読者() 同様の方法:
| オブジェクトリーダー | Reader() メソッドとそのバリエーションは、ObjectReader のインスタンスを構築するために使用されるファクトリ メソッドです。要件に基づいて、Base64 エンコードされたバイナリ データ、デフォルト属性、有効な機能、注入可能な値、JSON ツリーを構築するための JsonNodeFactory の Base64 エンコード バリアントを渡すことができます。 |
| ReaderFor(クラスタイプ) | オブジェクトリーダー | これは、ObjectReader の構築に使用されるファクトリ メソッドであり、指定された型のインスタンスの読み取りまたは更新操作を可能にします。 |
| ReaderFor(JavaType 型) | オブジェクトリーダー | これは、ObjectReader を構築するために使用されるファクトリ メソッドであり、指定された JavaType のインスタンスの読み取りまたは更新操作を可能にします。 |
| ReaderFor(TypeReference 型) | オブジェクトリーダー | これは、ObjectReader を構築するために使用されるファクトリ メソッドであり、指定された TypeReference のインスタンスの読み取りまたは更新操作を可能にします。 |
| ReaderForUpdating(Object valueToUpdate) | オブジェクトリーダー | これは、指定されたオブジェクトの更新操作を可能にする ObjectReader を構築するために使用されるファクトリ メソッドです。 |
| ReaderWithView(クラスビュー) | オブジェクトリーダー | これは ObjectReader を構築するために使用されるファクトリ メソッドであり、 指定された JSON ビューを使用したオブジェクトの逆シリアル化。 |
readTree(バイト[]コンテンツ)
| JsonNode または T | readTree() とそのバリエーションは、JsonNode インスタンスのセットを使用して表現されたツリーとして JSON コンテンツを逆シリアル化するために使用されます。 |
| readValue(byte[] src, クラス valueType) 同様の方法
| T または マッピングイテレータ | readValue() とそのバリエーションは、JSON コンテンツを逆シリアル化するために使用されます。
|
| readValues(JsonParser p, クラス valueType) 同様の方法:
| マッピングイテレータ | readValues() とそのバリエーションは、パーサー ストリームからオブジェクトのシーケンスを読み取るために使用されます。 |
| registerModule(モジュールモジュール) 同様の方法:
| オブジェクトマッパー | registerModule() とそのバリエーションは、マッパーによって提供される機能を拡張する機能を持つモジュールを登録するために使用されます。 |
| registerSubtypes(NamedType... タイプ) | 空所 | 指定されたクラスをサブタイプとして登録するために使用されます。そうすることで、型名ベースの解決によりスーパータイプをサブタイプにリンクできます。 |
| setAnnotationIntrospector(AnnotationIntrospector ai) | オブジェクトマッパー | これは、マッパー インスタンスによってシリアル化と逆シリアル化の両方に使用される AnnotationIntrospector を設定するために使用されます。 |
| setAnnotationIntrospectors(AnnotationIntrospectorserializerAI, AnnotationIntrospector deserializerAI) | オブジェクトマッパー | これは、シリアル化および逆シリアル化のために現在のマッパー インスタンスによって使用される AnnotationIntrospector のインスタンスを変更するために使用されます。 |
| setBase64Variant(Base64Variant v) | オブジェクトマッパー | これは、byte[] シリアライザーおよびデシリアライザーによって使用されるデフォルトの Base64Variant を構成するために使用されます。 |
| setConfig(DeserializationConfig 構成) | オブジェクトマッパー | 基になる DeserializationConfig オブジェクトのオーバーライドを実行するには、このメソッドを使用します。 |
| setConfig(SerializationConfig 構成) | オブジェクトマッパー | シリアル化固有の構成設定を持つ基礎となる SerializationConfig オブジェクトのオーバーライドを実行するには、このメソッドを使用します。 |
| setDateFormat(DateFormat dateFormat) | オブジェクトマッパー | これは、時刻値を文字列としてシリアル化するとき、または JSON 文字列から逆シリアル化するときに使用するようにデフォルトの DateFormat を構成するために使用されます。 |
| setDefaultPrettyPrinter(PrettyPrinter pp) | オブジェクトマッパー | 「デフォルトのプリティプリント」が有効な場合に使用するプリティプリンタを指定するために使用されます。 |
| setDefaultTyping(TypeResolverBuilder タイパー) | オブジェクトマッパー | これは、タイプ情報の自動組み込みを有効にするために使用されます。 |
| setHandlerInstantiator(HandlerInstantiator hi) | 物体 | これは、ハンドラーのインスタンスの作成に使用する HandlerInstantiator を構成するために使用されます。 |
| setFilterProvider(フィルタープロバイダー filterProvider) | オブジェクトマッパー | これは、フィルター ID を実際のフィルター インスタンスにマッピングするために指定された FilterProvider を使用するように現在のマッパーを構成するために使用されます。 |
| setInjectableValues(InjectableValues injectableValues) | オブジェクトマッパー | これは、注入する値を見つけるために使用される InjectableValues を構成するために使用されます。 |
| setLocale(ローカル l) | オブジェクトマッパー | これは、書式設定に使用するデフォルトのロケールをオーバーライドするために使用されます。 |
| setMixInResolver(ClassIntrospector.MixInResolver 解決) | オブジェクトマッパー | このメソッドを使用して、特定のリゾルバーを指定して、使用するミックスイン クラスを見つけ、直接追加されたマッピングをオーバーライドします。 |
| setMixInAnnotations(Map | 空所 | これは、ミックスイン アノテーションを定義するための廃止された方法です。 |
| setNodeFactory(JsonNodeFactory f) | オブジェクトマッパー | これは、ルート レベルのツリー ノードの構築に使用する JsonNodeFactory を指定するために使用されます。 |
| setMixIns(マップ | オブジェクトマッパー | これは、処理可能なクラスが持つアノテーションを拡張するために使用するミックスイン アノテーションを定義するために使用されます。 |
| setPropertyInclusion(JsonInclude.Value incl) | オブジェクトマッパー | これは、シリアル化のためのデフォルトの POJO プロパティ包含戦略を設定するために使用されます。 |
| setPropertyNamingStrategy(PropertyNamingStrategy s) | オブジェクトマッパー | これは、使用するカスタム プロパティの命名戦略を設定するために使用されます。 |
| setSerializerFactory(SerializerFactory f) | オブジェクトマッパー | これは、(Bean) シリアライザーの構築に使用する特定の SerializerFactory を設定するために使用されます。 |
| setSerializerProvider(DefaultSerializerProvider p) | オブジェクトマッパー | これは、JsonSerializer インスタンスのキャッシュを処理するために使用する実際のプロバイダー インスタンスのベースとして使用するための「ブループリント」SerializerProvider インスタンスを設定するために使用されます。 |
| setSubtypeResolver(SubtypeResolver str) | オブジェクトマッパー | これは、使用するカスタム サブタイプ リゾルバーを設定するために使用されます。 |
| setTimeZone(タイムゾーン tz) | オブジェクトマッパー | これは、フォーマットに使用するデフォルトの TimeZone をオーバーライドするために使用されます。 |
| setTypeFactory(TypeFactory f) | オブジェクトマッパー | これは、現在のマッパーによって使用される TypeFactory インスタンスをオーバーライドするために使用されます。 |
setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility 可視性)
| オブジェクトマッパー | setVisibility() とそのバリエーションは、現在構成されている VisibilityChecker を設定するために使用されます。返された ObjectMapper インスタンスは、指定されたプロパティ要素が自動検出できるかどうかを確認するために使用されます。 |
| TreeAsTokens(TreeNode n) | JsonParser | これは、JSON ツリー表現から JsonParser を構築するために使用されます。 |
| TreeToValue(TreeNode n, クラス valueType) | T | これは、JSON ツリーに含まれる特定のデータを特定の値タイプにバインドするために使用されます。 |
| バージョン() | バージョン | これは、このクラスを含む jar に格納されているバージョン情報を取得したり、jar から読み取ったりするために使用されます。 |
ライター()
| オブジェクトライター | write() とそのバリエーションは、Base64 でエンコードされたバイナリ データの Base64 エンコード バリアント、出力の文字エスケープ詳細、デフォルト属性、DateFormat、フィルター プロバイダー、コンテンツの書き込みに使用される JsonGenerator へのスキーマ オブジェクトを指定して、デフォルト設定で ObjectWriter を構築するために使用されます。インデント用のきれいなプリンター、または機能が有効になっています。 |
| WriterFor(クラス rootType) - | オブジェクトライター | これは、実際の実行時の値の型ではなく、指定されたルート型を使用してオブジェクトをシリアル化するための ObjectWriter を構築するために使用されます。 |
| WriterFor(JavaType rootType) | オブジェクトライター | これは、実際の実行時の値の型ではなく、指定されたルート型を使用してオブジェクトをシリアル化するための ObjectWriter を構築するために使用されます。 |
| WriterFor(TypeReference rootType) | オブジェクトライター | これは、実際の実行時の値の型ではなく、指定されたルート型を使用してオブジェクトをシリアル化するための ObjectWriter を構築するために使用されます。 |
| WriterWithDefaultPrettyPrinter() | オブジェクトライター | これは、インデントにデフォルトのプリンターを使用してオブジェクトをシリアル化するための ObjectWriter を構築するために使用されるファクトリ メソッドです。 |
WriterWithType(クラス rootType)
| オブジェクトライター | これらのメソッドは廃止されたため、代わりに WriterFor(TypeReference) メソッドを使用します。 |
| WriterWithView(クラスシリアル化ビュー) | オブジェクトライター | これは、指定された JSON ビューを使用してオブジェクトをシリアル化するための ObjectWriter を構築するために使用されるファクトリ メソッドです。 |
| writeTree(JsonGenerator jgen, JsonNode rootNode) | 空所 | これは、指定された JsonGenerator を使用して、指定された JSON ツリーをシリアル化するために使用されます。 |
| writeValue(ファイル結果ファイル, オブジェクト値) | 空所 | Java 値を JSON 出力としてシリアル化し、指定されたファイルに書き込むために使用されます。 ファイル。 |
| writeValue(JsonGenerator g, オブジェクト値)。 | 空所 | 指定されたメソッドを使用して、Java 値を JSON 出力としてシリアル化するために使用されます。 Jsonジェネレーター。 |
| writeValue(OutputStream 出力、オブジェクト値) | 空所 | 指定されたメソッドを使用して Java 値を JSON 出力としてシリアル化するために使用されます。 出力ストリーム。 |
| writeValue(ライター w, オブジェクト値) | 空所 | 指定されたメソッドを使用して、Java 値を JSON 出力としてシリアル化するために使用されます。 作家。 |
| writeValueAsBytes(オブジェクト値) | バイト[] | Java 値をバイト配列としてシリアル化するために使用されます。 |
| writeValueAsString(オブジェクト値) | 弦 | Java 値を文字列としてシリアル化するために使用されます。 |
JacksonExample.java
//import required classes and package if any package javaTpoint.Jackson; import java.io.IOException; import java.util.List; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; //create class JacksonExample to understand implementation of Jackson public class JacksonExample { // main() method start public static void main(String args[]){ // create an instance of ObjectMapper class ObjectMapper mapper = new ObjectMapper(); // create a JSON string of employee details to deserilized object String stdString = '{
'students' : [
{
'stdId':'001',
'course':'MCA','+'
'firstName':'Nicholas',
'lastName':'Clemens',
'preferredFullName':'Nicholas Clemens','+'
'enrol':'S010',
'region':'indian',
'phoneNumber':'408-1234567',
'emailAddress''+':'[email protected]'
},
{
'stdId':'002',
'course':'BCA','+'
'firstName':'Sharon',
'lastName':'Lorenz',
'preferredFullName':'Sharon Lorenz','+'
'enrol':'S011',
'region':'indian',
'phoneNumber':'408-1111111',
'emailAddress''+':'[email protected]'
},
{
'stdId':'003',
'course':'Btech','+'
'firstName':'Brittany',
'lastName':'Hart',
'preferredFullName':'Brittany Hart',
''+'enrol':'S012',
'region':'indian',
'phoneNumber':'408-2222222',
'emailAddress':'[email protected]'
}
]
}'; try{ // use ObjectMapper for mapping JSON to Student Students students = mapper.readValue(stdString, Students.class); // print students System.out.println(students); // serialize students into json string stdString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(students); System.out.println(stdString); }catch (JsonParseException e) { e.printStackTrace(); }catch (JsonMappingException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } } } //create Students class class Students { public List students; // getter and setter public List getStudent() { return students; } public void setStudent(List students) { this.students = students; } } class Student { // declare variables private String stdId; private String course; private String firstName; private String lastName; private String preferredFullName; private String enrol; private String region; private String phoneNumber; private String emailAddress; public Student(){ } // getter/setters for all variables public String getStdId() { return stdId; } public void setStdId(String stdId) { this.stdId = stdId; } public String getCourse() { return course; } public void getCourse(String course) { this.course = course; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getPreferredFullName() { return preferredFullName; } public void setPreferredFullName(String preferredFullName) { this.preferredFullName = preferredFullName; } public String getEnrol() { return enrol; } public void setEnrol(String enrol) { this.enrol = enrol; } public String getRegion() { return region; } public void setRegion(String region) { this.region = region; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public String getEmailAddress() { return emailAddress; } public void setEmailAddress(String emailAddress) { this.emailAddress = emailAddress; } public String toString(){ return 'Employee [ Student Id: '+stdId+', Course: '+course+ '' + ', First Name: '+firstName+ ', Last Name: '+lastName+ '' + ', Name: '+preferredFullName+ ', Enrol No: '+enrol+ '' + ', Region: '+region+ ', Phone Number: '+phoneNumber+ '' + ', Email Address: '+emailAddress+ ' ]'; } } 出力: