ホームページ >Java >&#&チュートリアル >調整された JSON シリアル化のために Jackson でカスタム シリアライザーを作成して登録するにはどうすればよいですか?

調整された JSON シリアル化のために Jackson でカスタム シリアライザーを作成して登録するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-26 01:11:10973ブラウズ

How to Create and Register Custom Serializers in Jackson for Tailored JSON Serialization?

Jackson でカスタム シリアライザーを利用する方法

Jackson では、カスタム シリアライザーを利用することで、特定のクラスに合わせた JSON シリアル化が可能になります。

カスタムの作成Serializer

Item クラスからオブジェクトをシリアル化するには、カスタム シリアライザーを作成します。

public class ItemSerializer extends JsonSerializer<Item> {

    @Override
    public void serialize(Item value, JsonGenerator jgen,
                          SerializerProvider provider) throws IOException,
                                                             JsonProcessingException {
        jgen.writeStartObject();
        jgen.writeNumberField("id", value.id);
        jgen.writeNumberField("itemNr", value.itemNr);
        jgen.writeNumberField("createdBy", value.createdBy.id);
        jgen.writeEndObject();
    }
}

カスタム シリアライザーの登録

作成後シリアライザーに登録する必要がありますJackson:

SimpleModule simpleModule = new SimpleModule("SimpleModule",
                                              new Version(1,0,0,null));
simpleModule.addSerializer(new ItemSerializer());
mapper.registerModule(simpleModule);

型登録の処理

型処理が欠落しているため、Jackson はエラーを発生させます。この問題は、型を明示的に処理することで解決します。

public class ItemSerializer extends JsonSerializer<Item> {

    @Override
    public void serialize(Item value, JsonGenerator jgen,
                          SerializerProvider provider) throws IOException,
                                                             JsonProcessingException {
        // ... (Serialization code)
    }

    @Override
    public Class<Item> handledType() {
        return Item.class;
    }
}

Jackson によるシリアル化

カスタム シリアライザーを登録して、通常どおり、Item オブジェクトをシリアル化します。

StringWriter writer = new StringWriter();

try {
    mapper.writeValue(writer, myItem);
} catch (JsonGenerationException | JsonMappingException | IOException e) {
    e.printStackTrace();
}

ユーザーの例シリアル化

カスタム シリアル化戦略を使用してユーザー オブジェクトをシリアル化するには、同様のシリアライザーを作成し、Jackson に登録します。

カスタム シリアライザーにより、オブジェクトの JSON 表現を柔軟に制御できることを覚えておいてください。 、特定のシリアル化要件に対応します。

以上が調整された JSON シリアル化のために Jackson でカスタム シリアライザーを作成して登録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。