Jackson ライブラリを使用して Java でカスタム シリアライザーを実装するにはどうすればよいですか?

王林
リリース: 2023-09-12 21:37:02
転載
1380 人が閲覧しました

Jackson ライブラリを使用して Java でカスタム シリアライザーを実装するにはどうすればよいですか?

Jackson API は、JSON データを処理するための多くのメソッドを提供します。 Jackson API を使用すると、Java オブジェクトを JSON 文字列に変換し、JSON 文字列からオブジェクトを再構築できます。 StdSerializer クラスを使用してカスタム シリアライザーを実装し、serialize(T value, JsonGenerator gen, SerializerProvider Provider) メソッドをオーバーライドする必要があります。最初のパラメーター値はシリアル化される値を表し (空にすることはできません)、2 番目のパラメーター gen はは、結果の Json コンテンツを出力するために使用されるジェネレーターを表し、3 番目のパラメーターのプロバイダーは、オブジェクト値をシリアル化するために使用されるシリアライザーを取得するために使用できるプロバイダーを表します。

文法

public abstract void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException
ログイン後にコピー

中国語への翻訳:

import java.io.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.module.*;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
public class JacksonSerializeTest {
   public static void main(String[] args) throws Exception {
      JacksonSerializeTest test = new JacksonSerializeTest();
      test.serialize();
   }
   public void serialize() throws Exception {
      User user = new User();
      user.setFirstName("Raja");
      user.setLastName("Ramesh");
      ObjectMapper mapper = new ObjectMapper();
      SimpleModule module = new SimpleModule();
      module.addSerializer(User.class, new UserSerializer());
      mapper.registerModule(module);

      String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user); // pretty print
      System.out.println(jsonStr);
   }
}
// User class
class User implements Serializable {
   private String firstName;
   private String lastName;
   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;
   }
}
// UserSerializer class
class UserSerializer extends StdSerializer<User> {
   public UserSerializer() {
      this(null);
   }
   public UserSerializer(Class<User> t) {
      super(t);
   }
<strong>   </strong>@Override
   public void serialize(User value, JsonGenerator jgen, SerializerProvider provider) throws       IOException, JsonProcessingException {
      jgen.writeStartObject();
      jgen.writeStringField("firstName", value.getFirstName());
      jgen.writeStringField("lastName", value.getLastName());
      jgen.writeEndObject();
   }
}
ログイン後にコピー

出力

{
 "firstName" : "Raja",
 "lastName" : "Ramesh"
}
ログイン後にコピー

以上がJackson ライブラリを使用して Java でカスタム シリアライザーを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート