Jackson API는 JSON 데이터를 처리하는 다양한 방법을 제공합니다. Jackson API를 사용하면 Java 개체를 JSON 문자열로 변환하고 JSON 문자열에서 개체를 재구성할 수 있습니다. StdSerializer 클래스를 사용하여 사용자 정의 직렬 변환기를 구현할 수 있으며 serialize(T 값, JsonGenerator gen, SerializerProvider 공급자) 메서드를 재정의해야 합니다. 첫 번째 매개 변수 값은 직렬화할 값(비워둘 수 없음)을 나타내고 두 번째 매개 변수 gen은 결과 Json 콘텐츠를 출력하는 데 사용되는 생성기를 나타내고, 세 번째 매개 변수 공급자는 개체 값을 직렬화하는 데 사용되는 직렬 변환기를 얻는 데 사용할 수 있는 공급자를 나타냅니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!