Jackson의 ObjectMapper 클래스
객체매퍼 에서 제공되는 가장 중요한 수업 중 하나입니다. 잭슨 도서관. JSON 데이터를 읽고 쓰는 데 사용됩니다. POJO 파일과 JSON 트리 모델 간의 데이터 읽기를 담당합니다.
ObjectMapper 클래스에는 다음과 같은 특징이 있습니다.
- 다음과 같은 고급 개념을 지원합니다. 다형성 그리고 객체 인식.
- 다양한 스타일의 JSON 콘텐츠로 작업하도록 사용자 정의할 수 있습니다.
- 진출을 위한 공장으로 작동 객체 판독기 그리고 객체작성기 클래스.
ObjectMapper 클래스는 다음과 같은 방식으로 선언됩니다.
public class ObjectMapper extends ObjectCodec implements Versioned, Serializable
중첩 클래스
다음 표에서는 ObjectMapper 클래스를 확장하는 클래스 또는 ObjectMapper 클래스의 중첩 클래스를 정의합니다.
| 수업 | 설명 |
|---|---|
| DefaultTypeResolverBuilder | 맞춤형입니다 유형ResolverBuilder 다음과 함께 사용할 수 있는 유형 해석기 빌더를 가져오는 데 사용되는 클래스 '기본 입력'. |
| 기본 입력 | 유형의 종류를 지정하기 위해 enableDefaultTyping() 메소드와 함께 열거형이 사용됩니다. |
이제 ObjectMapper 클래스의 필드, 생성자 및 메서드를 이해해 보겠습니다.
ObjectMapper 클래스의 필드
protected DefaultDeserializationContext _deserializationContext
사용자 정의 하위 클래스를 허용하기 위해 저장되는 청사진 컨텍스트 개체입니다.
protected DeserializationConfig _deserializationConfig
역직렬화 프로세스에 대한 기본 전역 설정을 정의하는 데 사용되는 구성 개체입니다.
보호된 JsonFactory jsonFactory
JsonParser 및 JsonGenerator의 인스턴스를 생성하기 위해 JsonFactory가 사용됩니다.
보호된 InjectableValues _injectableValues
역직렬화된 POJO에 값을 주입하는 데 사용되는 공급자입니다.
보호된 ConfigOverrides _propertyOverrides
현재 활성화된 유형별 구성 재정의에 액세스하는 데 사용됩니다.
보호되는 SimpleMixInResolver _mixIns
믹스인 주석을 적용하는 방법을 정의하는 데 사용되는 매핑입니다. 매핑은 다음과 같은 방식으로 수행됩니다.
열쇠: 추가 주석을 받으려면 입력하세요.
값: '혼합'할 주석이 있는 유형
보호됨 _registeredModuleTypes 설정
등록된 모듈 유형의 집합을 정의하는 Set입니다.
protected SerializationConfig _serializationConfig
또한 직렬화 프로세스에 대한 기본 전역 설정을 정의하는 데 사용되는 구성 개체입니다.
보호된 ConcurrentHashMap
루트 수준 역직렬 변환기를 추적하는 데 사용되는 맵입니다. 메인레벨 맵입니다.
보호된 SerializerFactory _serializerFactory
시리얼라이저를 구성하는 데 사용되는 팩토리입니다.
보호된 SubtypeResolver _subtypeResolver
하위 유형을 등록하고 필요에 따라 슈퍼/하위 유형에 대해 해결하는 데 사용됩니다.
보호된 TypeFactory _typeFactory
JavaType 인스턴스를 생성하는 데 사용되는 팩토리입니다. 모듈이 더 많은 사용자 정의 유형 처리를 추가하도록 허용하는 데 필요합니다.
protected DefaultSerializerProvider _serializerProvider
직렬화에 사용되는 직렬 변환기에 대한 액세스를 관리하는 개체입니다.
보호된 정적 BaseSettings DEFAULT_BASE
모든 ObjectMapper 인스턴스에 사용되는 기본값을 포함하는 기본 설정입니다.
ObjectMapper 클래스의 생성자
ObjectMapper 클래스의 생성자는 다음과 같습니다.
| 건설자 | 설명 |
|---|---|
| 객체매퍼() | 기본값을 사용하는 인스턴스를 생성하는 데 사용되는 기본 생성자입니다. JsonFactory, SerializerProvider, 그리고 BeanSerializerFactory. |
| ObjectMapper(JsonFactory 팩토리) | 지정된 JsonFactory를 사용하는 인스턴스를 구성하는 데 사용됩니다. 지정된 JsonFactory를 사용하여 생성합니다. Json파서 및/또는 JsonGenerator. |
| ObjectMapper(JsonFactory 팩토리, SerializerProvider 공급자1, DeserializerProvider 공급자2) | 주어진 것을 사용하는 인스턴스를 구성하는 데 사용됩니다. JsonFactory, SerializerProvider, 그리고 DeserializerProvider. 지정된 JsonFactory를 사용하여 생성합니다. Json파서 및/또는 JsonGenerator. |
| 보호된 ObjectMapper(ObjectMapper 매퍼) | copy()를 지원하는 복사 생성자입니다. |
ObjectMapper 클래스 메서드
ObjectMapper 클래스는 다음 메서드를 정의합니다.
| 방법 | 반환 유형 | 설명 |
|---|---|---|
| _checkInvalidCopy(클래스 exp) | 무효의 | 유효하지 않은 사본을 확인하는데 사용됩니다. |
| _configAndWriteValue(JsonGenerator g, 개체 값) | 무효의 | 필요할 때 생성기를 구성한 다음 쓰기 기능을 수행하는 데 사용됩니다. |
| _convert(Object fromValue, JavaType toValueType) | 물체 | 실제 변환 구현을 얻는 데 사용됩니다. 여기서는 코드에 읽기 및 쓰기 방법이 사용되지 않습니다. |
| _initForReading(JsonParser p) | JsonToken | 이는 지정된 파서가 데이터 바인딩을 위한 콘텐츠를 읽을 준비가 되었는지 여부를 확인하는 데 사용됩니다. |
| _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) | JsonDeserializer | 전달된 루트 수준 값에 대해 역직렬 변환기를 찾으려면 이 방법을 사용합니다. |
| _newReader(직렬화 해제 구성 구성) 유사한 방법:
| 객체 판독기 | 즉, 적절한 하위 유형의 ObjectReader 인스턴스를 가져오는 데 사용되는 팩토리 메서드입니다. 이 메서드를 사용하려면 하위 클래스를 재정의해야 합니다. |
| _newWriter(SerializationConfig 구성) 유사한 방법:
| 객체작성기 | 즉, 적절한 하위 유형의 ObjectWriter 인스턴스를 가져오는 데 사용되는 팩토리 메서드입니다. 이 메서드를 사용하려면 하위 클래스를 재정의해야 합니다. |
| _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) | 물체 | 값 읽기 및 바인딩 작업을 정의하는 개체를 가져오는 데 사용됩니다. |
| _serializerProvider(SerializationConfig 구성) | DefaultSerializerProvider | SerializerProvider를 구성하는 데 사용되는 재정의 가능한 도우미 메서드입니다. |
| acceptJsonFormatVisitor(클래스 유형, JsonFormatVisitorWrapper 방문자) 유사한 방법:
| 무효의 무효의 | 특정 방문자와 함께 특정 유형의 유형 계층 구조를 방문하려는 경우 이 방법을 사용합니다. |
| addHandler(DeserializationProblemHandler h) | 객체매퍼 | 역직렬화 중에 지정된 문제를 처리하기 위해 지정된 DeserializationProblemHandler를 사용하고 핸들러를 추가하려면 이 메서드를 사용합니다. |
| addMixIn(클래스 대상, 클래스 mixinSource) | 객체매퍼 | 특정 증강 클래스나 인터페이스에 대한 mix-in 어노테이션을 사용하기 위해 이 메소드를 사용하여 추가합니다. |
| canDeserialize(JavaType 유형) | 부울 | 매퍼가 지정된 유형의 객체를 역직렬화할 수 있는지 여부를 확인하는 데 사용됩니다. |
| canDeserialize(JavaType 유형, AtomicReference 원인) | 부울 | 이전 방법과 비슷합니다. 유일한 차이점은 serializer를 구성할 때 throw된 throwable을 반환할 수 있다는 것입니다. 던질 수 있는 물체를 사용하여 실제 문제를 파악할 수 있습니다. |
| canSerialize(클래스 유형) | 부울 | 매퍼가 지정된 유형의 객체를 직렬화할 수 있는지 여부를 확인하는 데 사용됩니다. |
| canSerialize(클래스 유형, AtomicReference 원인) | 부울 | 이전 방법과 비슷합니다. 유일한 차이점은 serializer를 구성할 때 throw된 throwable을 반환할 수 있다는 것입니다. 던질 수 있는 물체를 사용하여 실제 문제를 파악할 수 있습니다. |
| 클리어문제 처리기() | 객체매퍼 | 등록된 매퍼에서 모든 DeserializationProblemHandlers 인스턴스를 제거하는 데 사용되는 메소드 중 하나입니다. |
| 구성(직렬화 기능 f, 부울 상태) 유사한 방법:
| 객체매퍼 | 객체 매퍼, 생성기 인스턴스, 파서 인스턴스, 매퍼 인스턴스 또는 객체 매퍼에 대한 직렬화 해제/해제, Json Generator, JsonParser, Mapper 또는 직렬화 기능의 상태를 변경하는 데 사용됩니다. |
| 구성 유형(유형 t) | 자바 유형 | 명시적인 컨텍스트 없이 주어진 유형에서 JavaType을 구성하려면 이 메소드를 사용합니다. |
| ConvertValue(Object fromValue, 클래스 toValueType) 유사한 방법:
| 티 | 주어진 값을 주어진 값 유형의 인스턴스로 2단계 변환하려면 converValue() 메서드를 사용합니다. |
| createArrayNode() | 배열노드 | ArrayNode를 생성하는 데 사용됩니다. |
| defaultClassIntrospector() | 클래스검사자 | 기본 ClassIntrospector를 사용하려면 이를 생성하기 위해 이 재정의 가능한 도우미 메서드를 사용합니다. |
| 비활성화(역직렬화 기능 기능) 유사한 방법:
| 객체매퍼 | 이는 지정된 DeserializationConfig, 파서 인스턴스의 경우 JsonGenerator.Features, 개체 매퍼의 파서 인스턴스의 경우 JsonParser.Features를 비활성화하는 데 사용됩니다. |
| 비활성화기본입력() | 객체매퍼 | 유형 정보의 자동 포함을 비활성화해야 하는 경우가 많으며, 이를 위해 이 방법을 사용합니다. |
활성화(역직렬화 기능 기능)
| 객체매퍼 | 이는 지정된 DeserializationConfig, 파서 인스턴스의 경우 JsonGenerator.Features, 객체 매퍼의 파서 인스턴스의 경우 JsonParser.Features를 활성화하는 데 사용됩니다. |
| 활성화DefaultTyping() 유사한 방법:
| 객체매퍼 | 다형성 유형의 역직렬화를 위한 유형 정보 자동 포함을 사용하기 위해 이 방법을 사용하여 활성화합니다. |
| 찾기앤레지스터모듈() | 객체매퍼 | mapper.registerModules(mapper.findModules()) 메소드와 유사합니다. |
| 찾기모듈() 유사한 방법:
| 목록 | 사용 가능한 방법을 찾는 데 사용됩니다. 이 방법은 모듈 제공 SPI와 함께 JDK ServiceLoader 기능을 사용합니다. |
| getDate형식() | 날짜 형식 | 날짜 형식을 가져오는 데 사용됩니다. |
| getDeserializationConfig() | 역직렬화구성 | 공유된 기본 DeserializationConfig 개체를 가져오는 데 사용됩니다. 반환된 개체는 역직렬화에 대한 구성 설정을 정의합니다. |
| getDeserializationContext() | 역직렬화컨텍스트 | 현재 DeserializationContext를 가져오는 데 사용됩니다. |
| getFactory() | JsonFactory | 매퍼가 Json 파서 및 생성기를 구성해야 하는 경우 json 팩토리가 필요하며 이를 가져오기 위해 getFactory() 메서드를 사용합니다. |
| getInjectableValues() | 주입 가능한 값 | 주입 가능한 값을 얻는 데 사용됩니다. |
| getJsonFactory() | JsonFactory | Json 팩토리를 가져오는 것은 더 이상 사용되지 않는 방법입니다. |
| getNodeFactory() | JsonNodeFactory | Trees에 대한 루트 JsonNode 인스턴스를 직접 구성할 때 매퍼가 사용하는 JsonNodeFactory를 가져오는 데 사용됩니다. |
| getPropertyNamingStrategy() | PropertyNaming전략 | 이름에서 알 수 있듯이 속성의 명명 전략에 사용됩니다. |
| getSerializationConfig() | 직렬화 구성 | 공유된 기본 SerializationConfig 개체를 가져오는 데 사용됩니다. 반환된 개체는 직렬화에 대한 구성 설정을 정의합니다. |
| getSerializerFactory() | 시리얼라이저팩토리 | 현재 SerializerFactory를 가져오는 데 사용됩니다. |
| getSerializerProvider() | SerializerProvider | DefaultSerializerProvider.createInstance(SerializationConfig, SerializerFactory)를 호출하여 인스턴스를 생성하는 데 사용되는 팩토리에 대한 접근자입니다. |
| getSerializerProviderInstance() | SerializerProvider | SerializerProvider에 액세스하는 데 사용할 수 있는 SerializerProvider의 인스턴스를 생성하고 반환하는 데 사용되는 접근자입니다. |
| getSubtypeResolver() | 하위 유형 해석기 | 사용 중인 하위 유형 분석기에 액세스하는 데 사용됩니다. |
| getTypeFactory() | 유형Factory | 현재 구성된 TypeFactory의 인스턴스를 가져오는 데 사용되는 접근자입니다. |
| getVisibilityChecker() | 가시성 검사기 | 현재 구성된 가시성 검사기에 액세스하는 데 사용됩니다. |
| isEnabled(역직렬화 기능 f) 유사한 방법:
| 부울 | isEnable() 메서드와 그 변형은 주어진 역직렬화 관련 JsonFactory, JsonGenerator, JsonParser, Mapper 또는 Serialization 기능이 활성화되어 있는지 여부를 확인하는 데 사용됩니다. |
| 믹스인카운트() | 정수 | mixIn의 개수를 가져오는 데 사용됩니다. |
| 리더() 유사한 방법:
| 객체 판독기 | reader() 메서드와 그 변형은 ObjectReader의 인스턴스를 생성하는 데 사용되는 팩토리 메서드입니다. 요구 사항에 따라 Base64로 인코딩된 이진 데이터에 대한 Base64 인코딩 변형, 기본 속성, 활성화된 기능, 주입 가능한 값, JSON 트리 구성을 위한 JsonNodeFactory를 전달할 수 있습니다. |
| readerFor(클래스 유형) | 객체 판독기 | ObjectReader를 생성하는 데 사용되는 팩토리 메서드로, 지정된 유형의 인스턴스에 대한 읽기 또는 업데이트 작업을 허용합니다. |
| readerFor(JavaType 유형) | 객체 판독기 | 이는 ObjectReader를 구성하는 데 사용되는 팩토리 메소드로, 지정된 JavaType의 인스턴스에 대한 읽기 또는 업데이트 작업을 허용합니다. |
| readerFor(Type참조 유형) | 객체 판독기 | ObjectReader를 구성하는 데 사용되는 팩토리 메서드로, 지정된 TypeReference의 인스턴스에 대한 읽기 또는 업데이트 작업을 허용합니다. |
| readerForUpdating(Object valueToUpdate) | 객체 판독기 | 주어진 객체에 대한 업데이트 작업을 허용하는 ObjectReader를 구성하는 데 사용되는 팩토리 메서드입니다. |
| readerWithView(클래스 뷰) | 객체 판독기 | ObjectReader를 생성하는 데 사용되는 팩토리 메서드입니다. 주어진 JSON 보기를 사용하여 객체를 역직렬화합니다. |
readTree(바이트[] 내용)
| JsonNode 또는 티 | readTree() 및 그 변형은 JsonNode 인스턴스 세트를 사용하여 표현된 트리로 JSON 콘텐츠를 역직렬화하는 데 사용됩니다. |
| readValue(byte[] src, 클래스 valueType) 유사한 방법
| 티 또는 매핑반복자 | readValue() 및 그 변형은 JSON 콘텐츠를 역직렬화하는 데 사용됩니다.
|
| readValues(JsonParser p, 클래스 valueType) 유사한 방법:
| 매핑반복자 | readValues() 및 그 변형은 파서 스트림에서 객체 시퀀스를 읽는 데 사용됩니다. |
| RegisterModule(모듈 모듈) 유사한 방법:
| 객체매퍼 | RegisterModule() 및 그 변형은 매퍼가 제공하는 기능을 확장하는 기능을 가진 모듈을 등록하는 데 사용됩니다. |
| RegisterSubtypes(NamedType... 유형) | 무효의 | 주어진 클래스를 하위 유형으로 등록하는 데 사용됩니다. 이를 통해 유형 이름 기반 확인을 통해 상위 유형을 하위 유형에 연결할 수 있습니다. |
| setAnnotationIntrospector(AnnotationIntrospector ai) | 객체매퍼 | 이는 직렬화 및 역직렬화 모두를 위해 매퍼 인스턴스에서 사용되는 AnnotationIntrospector를 설정하는 데 사용됩니다. |
| setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) | 객체매퍼 | 직렬화 및 역직렬화를 위해 현재 매퍼 인스턴스에서 사용하는 AnnotationIntrospector의 인스턴스를 변경하는 데 사용됩니다. |
| setBase64Variant(Base64Variant v) | 객체매퍼 | byte[] 직렬 변환기 및 역직렬 변환기에서 사용할 기본 Base64Variant를 구성하는 데 사용됩니다. |
| setConfig(직렬화 해제 구성 구성) | 객체매퍼 | 기본 DeserializationConfig 개체를 재정의하기 위해 이 메서드를 사용합니다. |
| setConfig(SerializationConfig 구성) | 객체매퍼 | 직렬화 관련 구성 설정이 있는 기본 SerializationConfig 개체를 재정의하기 위해 이 방법을 사용합니다. |
| setDateFormat(DateFormat 날짜 형식) | 객체매퍼 | 시간 값을 문자열로 직렬화하거나 JSON 문자열에서 역직렬화할 때 사용하도록 기본 DateFormat을 구성하는 데 사용됩니다. |
| setDefaultPrettyPrinter(PrettyPrinter pp) | 객체매퍼 | '기본 Pretty-Printing'이 활성화된 경우 사용할 PrettyPrinter를 지정하는 데 사용됩니다. |
| setDefaultTyping(TypeResolverBuilder 입력자) | 객체매퍼 | 유형 정보의 자동 포함을 활성화하는 데 사용됩니다. |
| setHandlerInstantiator(HandlerInstantiator 안녕하세요) | 물체 | 핸들러 인스턴스를 생성하는 데 사용할 HandlerInstantiator를 구성하는 데 사용됩니다. |
| setFilterProvider(FilterProvider 필터 제공자) | 객체매퍼 | 필터 ID를 실제 필터 인스턴스에 매핑하기 위해 지정된 FilterProvider를 사용하도록 현재 매퍼를 구성하는 데 사용됩니다. |
| setInjectableValues(InjectableValues injectableValues) | 객체매퍼 | 주입할 값을 찾는 데 사용되는 InjectableValues를 구성하는 데 사용됩니다. |
| setLocale(로컬 l) | 객체매퍼 | 형식 지정에 사용할 기본 로캘을 재정의하는 데 사용됩니다. |
| setMixInResolver(ClassIntrospector.MixInResolver 해결) | 객체매퍼 | 우리는 이 방법을 사용하여 사용할 혼합 클래스를 찾기 위해 지정된 해석기를 지정하고 직접 추가된 매핑을 재정의합니다. |
| setMixInAnnotations(맵 | 무효의 | 믹스인 주석을 정의하기 위한 감가상각된 방법입니다. |
| setNodeFactory(JsonNodeFactory f) | 객체매퍼 | 루트 수준 트리 노드를 구성하는 데 사용할 JsonNodeFactory를 지정하는 데 사용됩니다. |
| setMixIns(맵 | 객체매퍼 | 처리 가능한 클래스에 있는 주석을 늘리는 데 사용할 혼합 주석을 정의하는 데 사용됩니다. |
| setPropertyInclusion(JsonInclude.Value 포함) | 객체매퍼 | 직렬화를 위한 기본 POJO 속성 포함 전략을 설정하는 데 사용됩니다. |
| setPropertyNamingStrategy(PropertyNamingStrategy s) | 객체매퍼 | 사용할 사용자 정의 속성 명명 전략을 설정하는 데 사용됩니다. |
| setSerializerFactory(SerializerFactory f) | 객체매퍼 | (빈) 시리얼라이저 구성에 사용할 특정 SerializerFactory를 설정하는 데 사용됩니다. |
| setSerializerProvider(DefaultSerializerProvider p) | 객체매퍼 | JsonSerializer 인스턴스의 캐싱을 처리하는 데 사용할 실제 공급자 인스턴스의 기반으로 사용하기 위한 'blueprint' SerializerProvider 인스턴스를 설정하는 데 사용됩니다. |
| setSubtypeResolver(SubtypeResolver str) | 객체매퍼 | 사용할 사용자 정의 하위 유형 확인자를 설정하는 데 사용됩니다. |
| setTimeZone(TimeZone tz) | 객체매퍼 | 서식 지정에 사용할 기본 TimeZone을 재정의하는 데 사용됩니다. |
| setTypeFactory(TypeFactory f) | 객체매퍼 | 현재 매퍼에서 사용하는 TypeFactory 인스턴스를 재정의하는 데 사용됩니다. |
setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visible)
| 객체매퍼 | setVisibility() 및 그 변형은 현재 구성된 VisibilityChecker를 설정하는 데 사용됩니다. 반환된 ObjectMapper 인스턴스는 지정된 속성 요소를 자동 감지할 수 있는지 여부를 확인하는 데 사용됩니다. |
| treeAsTokens(TreeNode n) | JsonParser | JSON 트리 표현으로 JsonParser를 구성하는 데 사용됩니다. |
| treeToValue(TreeNode n, 클래스 값 유형) | 티 | JSON 트리에 포함된 데이터를 특정 값 유형으로 바인딩하는 데 사용됩니다. |
| 버전() | 버전 | 이 클래스가 포함된 jar에 저장되어 있는 버전 정보를 가져오고 읽는 데 사용됩니다. |
작가()
| 객체작성기 | write() 및 그 변형은 Base64로 인코딩된 이진 데이터에 대한 Base64 인코딩 변형, 출력에 대한 문자 이스케이프 세부 정보, 기본 속성, DateFormat, 필터 공급자, 콘텐츠 작성에 사용되는 JsonGenerator에 대한 스키마 개체가 지정된 경우 기본 설정으로 ObjectWriter를 구성하는 데 사용됩니다. 들여쓰기를 위한 예쁜 프린터 또는 기능 활성화. |
| 작가For(클래스 루트 유형) - | 객체작성기 | 실제 런타임 유형의 값 대신 지정된 루트 유형을 사용하여 객체를 직렬화하기 위해 ObjectWriter를 구성하는 데 사용됩니다. |
| 작가For(JavaType 루트 유형) | 객체작성기 | 실제 런타임 유형의 값 대신 지정된 루트 유형을 사용하여 객체를 직렬화하기 위해 ObjectWriter를 구성하는 데 사용됩니다. |
| 작가For(TypeReference rootType) | 객체작성기 | 실제 런타임 유형의 값 대신 지정된 루트 유형을 사용하여 객체를 직렬화하기 위해 ObjectWriter를 구성하는 데 사용됩니다. |
| 작가WithDefaultPrettyPrinter() | 객체작성기 | 들여쓰기를 위해 꽤 기본 프린터를 사용하여 개체를 직렬화하기 위해 ObjectWriter를 구성하는 데 사용되는 팩토리 메서드입니다. |
writerWithType(클래스 루트 유형)
| 객체작성기 | 이러한 메소드는 더 이상 사용되지 않으며 대신에writerFor(TypeReference) 메소드를 사용합니다. |
| writerWithView(클래스 직렬화View) | 객체작성기 | 지정된 JSON View를 사용하여 객체를 직렬화하기 위한 ObjectWriter를 구성하는 데 사용되는 팩토리 메서드입니다. |
| writeTree(JsonGenerator jgen, JsonNode 루트Node) | 무효의 | 제공된 JsonGenerator를 사용하여 제공된 JSON 트리를 직렬화하는 데 사용됩니다. |
| writeValue(파일 결과파일, 객체 값) | 무효의 | Java 값을 JSON 출력으로 직렬화하고 이를 주어진 값에 쓰는 데 사용됩니다. 파일. |
| writeValue(JsonGenerator g, 개체 값). | 무효의 | 주어진 문자열을 사용하여 Java 값을 JSON 출력으로 직렬화하는 데 사용됩니다. JsonGenerator. |
| 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+ ' ]'; } } 산출: