Jackson - ObjectMapper 类



介绍

ObjectMapper 是 Jackson 库中的主要参与者类。ObjectMapper 类提供读取和写入 JSON 的功能,可以从基本 POJO(普通旧 Java 对象)或通用 JSON 树模型 (JsonNode) 读写 JSON,以及执行转换的相关功能。它还可以高度自定义,以适应不同样式的 JSON 内容,并支持更高级的对象概念,例如多态性和对象标识。ObjectMapper 也可以作为更高级的 ObjectReader 和 ObjectWriter 类的工厂。

类声明

以下是 **com.fasterxml.jackson.databind.ObjectMapper** 类的声明:

public class ObjectMapper
   extends ObjectCodec
      implements Versioned, Serializable

嵌套类

序号 类和描述
1 static class ObjectMapper.DefaultTypeResolverBuilder

自定义 TypeResolverBuilder,提供与所谓的“默认类型”一起使用的类型解析器构建器(有关详细信息,请参阅 enableDefaultTyping())。

2 static class ObjectMapper.DefaultTyping

与 enableDefaultTyping() 一起使用的枚举,用于指定应为哪种类型的(类)默认类型使用。

字段

  • **protected DeserializationConfig _deserializationConfig** - 定义序列化过程基本全局设置的配置对象。

  • **protected DefaultDeserializationContext _deserializationContext** - 蓝图上下文对象;存储在此处以允许自定义子类。

  • **protected InjectableValues _injectableValues** - 用于在反序列化 POJO 中注入值的提供程序。

  • **protected JsonFactory _jsonFactory** - 用于根据需要创建 JsonParser 和 JsonGenerator 实例的工厂。

  • **protected SimpleMixInResolver _mixIns** - 定义如何应用 mix-in 注解的映射:键是要接收附加注解的类型,值是要“混合”的注解的类型。

  • **protected ConfigOverrides _propertyOverrides** - 当前活动的每个类型配置覆盖,通过属性的声明类型访问。

  • **protected Set<Object> _registeredModuleTypes** - 已注册的模块类型集(根据 Module.getTypeId());如果启用了 MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS,则对其进行跟踪,以便可以忽略重复的注册调用(主要是为了避免多次添加相同的处理程序)。

  • **protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers** - 我们将使用单独的主级 Map 来跟踪根级反序列化器。

  • **protected SerializationConfig _serializationConfig** - 定义序列化过程基本全局设置的配置对象。

  • **protected SerializerFactory _serializerFactory** - 用于构造序列化器的序列化器工厂。

  • **protected DefaultSerializerProvider _serializerProvider** - 管理对用于序列化的序列化器的访问(包括缓存)的对象。

  • **protected SubtypeResolver _subtypeResolver** - 用于注册子类型,根据需要将它们解析为超类型/子类型。

  • **protected TypeFactory _typeFactory** - 用于创建 JavaType 实例的特定工厂;需要允许模块添加更多自定义类型处理(主要是为了支持非 Java JVM 语言的类型)。

  • protected static AnnotationIntrospector DEFAULT_ANNOTATION_INTROSPECTOR

  • **protected static BaseSettings DEFAULT_BASE** - 基本设置包含所有 ObjectMapper 实例使用的默认值。

  • protected static VisibilityChecker<?> STD_VISIBILITY_CHECKER

构造函数

序号构造函数和描述
1ObjectMapper()

默认构造函数,它将根据需要构造默认 JsonFactory,使用 SerializerProvider 作为其 SerializerProvider,并使用 BeanSerializerFactory 作为其 SerializerFactory。

2ObjectMapper(JsonFactory jf)

构造使用指定的 JsonFactory 来构造必要的 JsonParsers 和/或 JsonGenerators 的实例。

3ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp)

构造使用指定的 JsonFactory 来构造必要的 JsonParsers 和/或 JsonGenerators 的实例,并使用给定的提供程序来访问序列化器和反序列化器。

4protected ObjectMapper(ObjectMapper src)

复制构造函数,主要用于支持 copy()。

方法

用于构造要用于序列化的 SerializerProvider 的可覆盖辅助方法。void addMixInAnnotations(Class<?> target, Class<?> mixinSource) - 已弃用。自 2.5 起:由该方法的流畅形式替换;addMixIn(Class, Class)。protected DefaultDeserializationContext createDeserializationContext(JsonParser p, DeserializationConfig cfg) - 用于为反序列化单个根值创建 DeserializationContext 实例的内部辅助方法。JsonSchema generateJsonSchema(Class<?> t) - 已弃用。自 2.6 起使用外部 JSON Schema 生成器 (https://github.com/FasterXML/jackson-module-jsonSchema)(在后台调用 acceptJsonFormatVisitor(JavaType, JsonFormatVisitorWrapper)) void registerSubtypes(Class<?>... classes) - 用于将指定类注册为子类型的方法,以便基于类型的解析可以将超类型链接到子类型(作为使用注解的替代方法)。void setFilters(FilterProvider filterProvider) - 已弃用。自 2.6 起,改用 setFilterProvider(com.fasterxml.jackson.databind.ser.FilterProvider)(允许链接)用于构造 ObjectReader 的工厂方法,该 ObjectReader 将对输出使用指定的字符转义详细信息。
1protected void _checkInvalidCopy(Class<?> exp)

2**protected void _configAndWriteValue(JsonGenerator g, Object value)** - 用于根据需要配置生成器然后调用写入功能的方法
3**protected Object _convert(Object fromValue, JavaType toValueType)** - 实际的转换实现:而不是使用现有的读写方法,大部分代码都是内联的。
4**protected JsonDeserializer<Object> _findRootDeserializer(DeserializationContext ctxt, JavaType valueType)** - 用于为传递的根级值查找反序列化器的方法。
5**protected JsonToken _initForReading(JsonParser p)** - 用于确保给定的解析器已准备好读取数据绑定的内容的方法。
6**protected ObjectReader _newReader(DeserializationConfig config)** - 子类必须覆盖的工厂方法,以生成正确子类型的 ObjectReader 实例
7**protected ObjectReader _newReader(DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues)** - 子类必须覆盖的工厂方法,以生成正确子类型的 ObjectReader 实例
8**protected ObjectWriter _newWriter(SerializationConfig config)** - 子类必须覆盖的工厂方法,以生成正确子类型的 ObjectWriter 实例
9**protected ObjectWriter _newWriter(SerializationConfig config, FormatSchema schema)** - 子类必须覆盖的工厂方法,以生成正确子类型的 ObjectWriter 实例
10**protected ObjectWriter _newWriter(SerializationConfig config, JavaType rootType, PrettyPrinter pp)** - 子类必须覆盖的工厂方法,以生成正确子类型的 ObjectWriter 实例。
11protected Object _readMapAndClose(JsonParser p0, JavaType valueType)
12**protected Object _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType)** - 值读取+绑定操作的实际实现。
13protected DefaultSerializerProvider _serializerProvider(SerializationConfig config)
14protected Object _unwrapAndDeserialize(JsonParser p, DeserializationContext ctxt, DeserializationConfig config, JavaType rootType, JsonDeserializer<Object> deser)
15protected void _verifySchemaType(FormatSchema schema)
16**void acceptJsonFormatVisitor(Class<?> type, JsonFormatVisitorWrapper visitor)** - 用于使用指定的访问者访问给定类型的类型层次结构的方法。
17**void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor)** - 用于使用指定的访问者访问给定类型的类型层次结构的方法。
18**ObjectMapper addHandler(DeserializationProblemHandler h)** - 用于添加指定 DeserializationProblemHandler 以用于处理反序列化期间的特定问题的方法。
19**ObjectMapper addMixIn(Class<?> target, Class<?> mixinSource)** - 用于添加要用于增强指定类或接口的 mix-in 注解的方法。
20**boolean canDeserialize(JavaType type)** - 可以调用以检查映射器是否认为它可以反序列化给定类型的对象的方法。
21**boolean canDeserialize(JavaType type, AtomicReference<Throwable> cause)** - 与 canDeserialize(JavaType) 类似的方法,但可以返回尝试构造序列化器时引发的实际 Throwable:这可能有助于弄清实际问题是什么。
22**boolean canSerialize(Class<?> type)** - 可以调用以检查映射器是否认为它可以序列化给定类的实例的方法。
23**boolean canSerialize(Class<?> type, AtomicReference<Throwable> cause)** - 与 canSerialize(Class) 类似的方法,但可以返回尝试构造序列化器时引发的实际 Throwable:这可能有助于弄清实际问题是什么。
24**ObjectMapper clearProblemHandlers()** - 用于从此映射器中删除所有已注册的 DeserializationProblemHandlers 实例的方法。
25**MutableConfigOverride configOverride(Class<?> type)** - 用于获取给定类型的可变配置覆盖对象的访问器,需要添加或更改应用于给定类型的属性的每个类型覆盖。
26**ObjectMapper configure(DeserializationFeature f, boolean state)** - 用于更改此对象映射器的打开/关闭反序列化功能状态的方法。
27**ObjectMapper configure(JsonGenerator.Feature f, boolean state)** - 用于更改此对象映射器创建的生成器实例的打开/关闭 JsonGenerator 功能状态的方法。
28**ObjectMapper configure(JsonParser.Feature f, boolean state)** - 用于更改此对象映射器创建的解析器实例的指定 JsonParser.Features 状态的方法。
29**ObjectMapper configure(MapperFeature f, boolean state)** - 用于更改此映射器实例的打开/关闭映射器功能状态的方法。
30**ObjectMapper configure(SerializationFeature f, boolean state)** - 用于更改此对象映射器的打开/关闭序列化功能状态的方法。
31**JavaType constructType(Type t)** - 用于根据给定类型(通常是 java.lang.Class)构造 JavaType 的便捷方法,但没有显式上下文。
32**<T> T convertValue(Object fromValue, Class<T> toValueType)** - 用于对给定值执行两步转换的便捷方法,转换为给定值类型的实例(如果且仅当需要转换时)。
33**<T> T convertValue(Object fromValue, JavaType toValueType)** - 请参阅 convertValue(Object, Class)
34**<T> T convertValue(Object fromValue, TypeReference<?> toValueTypeRef)** - 请参阅 convertValue(Object, Class)
35**ObjectMapper copy()** - 用于创建具有与该实例相同的初始配置的新 ObjectMapper 实例的方法。
36**ArrayNode createArrayNode()** - 注意:返回类型是协变的,因为基本 ObjectCodec 抽象不能引用具体的节点类型(因为它属于核心包的一部分,而 impls 属于映射器包的一部分)
37**ObjectNode createObjectNode()** - 注意:返回类型是协变的,因为基本 ObjectCodec 抽象不能引用具体的节点类型(因为它属于核心包的一部分,而 impls 属于映射器包的一部分)
38**protected ClassIntrospector defaultClassIntrospector()** - 用于构造要使用的默认 ClassIntrospector 的可覆盖辅助方法。
39**ObjectMapper disable(DeserializationFeature feature)** - 用于启用指定的 DeserializationConfig 功能的方法。
40**ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f)** - 用于启用指定的 DeserializationConfig 功能的方法。
41**ObjectMapper disable(JsonGenerator.Feature... features)** - 用于为此对象映射器创建的解析器实例禁用指定的 JsonGenerator.Features 的方法。
42**ObjectMapper disable(JsonParser.Feature... features)** - 用于为此对象映射器创建的解析器实例禁用指定的 JsonParser.Features 的方法。
43**ObjectMapper disable(MapperFeature... f)** - 用于启用指定的 DeserializationConfig 功能的方法。
44**ObjectMapper disable(SerializationFeature f)** - 用于启用指定的 DeserializationConfig 功能的方法。
45**ObjectMapper disable(SerializationFeature first, SerializationFeature... f)** - 用于启用指定的 DeserializationConfig 功能的方法。
46**ObjectMapper disableDefaultTyping()** - 用于禁用自动包含类型信息的方法;如果是这样,只有显式注释的类型(具有 JsonTypeInfo 的类型)将具有附加的嵌入式类型信息。
47**ObjectMapper enable(DeserializationFeature feature)** - 用于启用指定的 DeserializationConfig 功能的方法。
48**ObjectMapper enable(DeserializationFeature first, DeserializationFeature... f)** - 用于启用指定的 DeserializationConfig 功能的方法。
49ObjectMapper enable(JsonGenerator.Feature... features) - 此方法用于为该对象映射器创建的解析器实例启用指定的 JsonGenerator.Features。
50ObjectMapper enable(JsonParser.Feature... features) - 此方法用于为该对象映射器创建的解析器实例启用指定的 JsonParser.Features。
51ObjectMapper enable(MapperFeature... f) - 此方法用于启用指定的 MapperConfig 功能。
52ObjectMapper enable(SerializationFeature f) - 此方法用于启用指定的 DeserializationConfig 功能。
53ObjectMapper enable(SerializationFeature first, SerializationFeature... f) - 此方法用于启用指定的 DeserializationConfig 功能。
54ObjectMapper enableDefaultTyping() - 此便捷方法等效于调用
55ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti) - 此便捷方法等效于调用
56ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs) - 此方法用于启用类型信息的自动包含,这对于多态类型的正确反序列化是必需的(除非类型已使用 JsonTypeInfo 进行注释)。
57ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, String propertyName) - 此方法用于启用类型信息的自动包含——对于多态类型的正确反序列化是必需的(除非类型已使用 JsonTypeInfo 进行注释)——使用“As.PROPERTY”包含机制以及指定用于包含的属性名称(默认值为“@class”,因为默认类型信息始终使用类名作为类型标识符)。
58ObjectMapper findAndRegisterModules() - 此便捷方法在功能上等效于:mapper.registerModules(mapper.findModules());
59Class<?> findMixInClassFor(Class<?> cls)
60static List<Module> findModules() - 此方法用于使用 JDK ServiceLoader 机制以及模块提供的 SPI 来查找可用的模块。
61static List<Module> findModules(ClassLoader classLoader) - 此方法用于使用 JDK ServiceLoader 机制以及模块提供的 SPI 来查找可用的模块。
62DateFormat getDateFormat()
63DeserializationConfig getDeserializationConfig() - 此方法返回共享的默认 DeserializationConfig 对象,该对象定义反序列化的配置设置。
64DeserializationContext getDeserializationContext() - 此方法用于获取当前的 DeserializationContext。
65JsonFactory getFactory() - 此方法可用于获取该映射器使用的 JsonFactory,如果需要构造 JsonParsers 和/或 JsonGenerators。
66InjectableValues getInjectableValues()
67JsonFactory getJsonFactory() - 已弃用。自 2.1 版起:请改用 getFactory()。
68JsonNodeFactory getNodeFactory() - 此方法可用于获取该映射器在直接为树构造根 JsonNode 实例时将使用的 JsonNodeFactory。
69PropertyNamingStrategy getPropertyNamingStrategy()
70SerializationConfig getSerializationConfig() - 此方法返回共享的默认 SerializationConfig 对象,该对象定义序列化的配置设置。
71SerializerFactory getSerializerFactory() - 此方法用于获取当前的 SerializerFactory。
72SerializerProvider getSerializerProvider() - 用于访问“蓝图”(或工厂)实例的访问器,通过调用 DefaultSerializerProvider.createInstance(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory) 创建实例。
73SerializerProvider getSerializerProviderInstance() - 用于构造和返回可用于访问序列化器的 SerializerProvider 实例的访问器。
74SubtypeResolver getSubtypeResolver() - 此方法用于访问正在使用的子类型解析器。
75TypeFactory getTypeFactory() - 用于获取当前已配置的 TypeFactory 实例的访问器。
76VisibilityChecker<?> getVisibilityChecker() - 此方法用于访问当前已配置的可见性检查器;该对象用于确定是否可以自动检测给定的属性元素(方法、字段、构造函数)。
77boolean isEnabled(DeserializationFeature f) - 此方法用于检查是否启用了给定的反序列化特定功能。
78boolean isEnabled(JsonFactory.Feature f) - 方便方法,等效于
79boolean isEnabled(JsonGenerator.Feature f)
80boolean isEnabled(JsonParser.Feature f)
81boolean isEnabled(MapperFeature f) - 此方法用于检查是否启用了给定的 MapperFeature。
82boolean isEnabled(SerializationFeature f) - 此方法用于检查是否启用了给定的序列化特定功能。
83int mixInCount()
84ObjectReader reader() - 用于使用默认设置构造 ObjectReader 的工厂方法。
85ObjectReader reader(Base64Variant defaultBase64) - 用于构造将对 Base64 编码的二进制数据使用指定的 Base64 编码变体的 ObjectReader 的工厂方法。
86ObjectReader reader(Class<?> type) - 已弃用。自 2.5 版起,请改用 readerFor(Class) 。
87ObjectReader reader(ContextAttributes attrs) - 用于构造将使用指定的默认属性的 ObjectReader 的工厂方法。
88ObjectReader reader(DeserializationFeature feature) - 用于构造已启用指定功能的 ObjectReader 的工厂方法(与该映射器实例具有的设置相比)。
89ObjectReader reader(DeserializationFeature first, DeserializationFeature... other) - 用于构造已启用指定功能的 ObjectReader 的工厂方法(与该映射器实例具有的设置相比)。
90ObjectReader reader(FormatSchema schema) - 用于构造将特定架构对象传递给用于读取内容的 JsonParser 的 ObjectReader 的工厂方法。
91ObjectReader reader(InjectableValues injectableValues) - 用于构造将使用指定的注入值的 ObjectReader 的工厂方法。
92ObjectReader reader(JavaType type) - 已弃用。自 2.5 版起,请改用 readerFor(JavaType) 。
93ObjectReader reader(JsonNodeFactory f) - 用于构造将使用指定的 JsonNodeFactory 来构造 JSON 树的 ObjectReader 的工厂方法。
94ObjectReader reader(TypeReference<?> type) - 已弃用。自 2.5 版起,请改用 readerFor(TypeReference) 。
95ObjectReader readerFor(Class<?> type) - 用于构造将读取或更新指定类型实例的 ObjectReader 的工厂方法
96ObjectReader readerFor(JavaType type) - 用于构造将读取或更新指定类型实例的 ObjectReader 的工厂方法
97ObjectReader readerFor(TypeReference<?> type) - 用于构造将读取或更新指定类型实例的 ObjectReader 的工厂方法
98ObjectReader readerForUpdating(Object valueToUpdate) - 用于构造将使用 JSON 数据更新给定对象(通常是 Bean,但也可以是集合或映射,但不是数组)的 ObjectReader 的工厂方法。
99ObjectReader readerWithView(Class<?> view) - 用于构造将使用指定的 JSON 视图(过滤器)反序列化对象的 ObjectReader 的工厂方法。
100JsonNode readTree(byte[] content) - 此方法将 JSON 内容反序列化为使用一组 JsonNode 实例表达的树。
101JsonNode readTree(File file) - 此方法将 JSON 内容反序列化为使用一组 JsonNode 实例表达的树。
102JsonNode readTree(InputStream in) - 此方法将 JSON 内容反序列化为使用一组 JsonNode 实例表达的树。
103<T extends TreeNode> T readTree(JsonParser p) - 此方法将 JSON 内容反序列化为使用一组 JsonNode 实例表达的树。
104JsonNode readTree(Reader r) - 此方法将 JSON 内容反序列化为使用一组 JsonNode 实例表达的树。
105JsonNode readTree(String content) - 此方法将 JSON 内容反序列化为使用一组 JsonNode 实例表达的树。
106JsonNode readTree(URL source) - 此方法将 JSON 内容反序列化为使用一组 JsonNode 实例表达的树。
107<T> T readValue(byte[] src, Class<T> valueType)
108<T> T readValue(byte[] src, int offset, int len, Class<T> valueType)
109<T> T readValue(byte[] src, int offset, int len, JavaType valueType)
110<T> T readValue(byte[] src, int offset, int len, TypeReference valueTypeRef)
111<T> T readValue(byte[] src, JavaType valueType)
112<T> T readValue(byte[] src, TypeReference valueTypeRef)
113<T> T readValue(DataInput src, Class<T> valueType)
114<T> T readValue(DataInput src, JavaType valueType)
115<T> T readValue(File src, Class<T> valueType) - 此方法将给定文件中的 JSON 内容反序列化为给定的 Java 类型。
116<T> T readValue(File src, JavaType valueType) - 此方法将给定文件中的 JSON 内容反序列化为给定的 Java 类型。
117<T> T readValue(File src, TypeReference valueTypeRef) - 此方法将给定文件中的 JSON 内容反序列化为给定的 Java 类型。
118<T> T readValue(InputStream src, Class<T> valueType)
119<T> T readValue(InputStream src, JavaType valueType)
120<T> T readValue(InputStream src, TypeReference valueTypeRef)
121<T> T readValue(JsonParser p, Class<T> valueType) - **此方法将 JSON 内容反序列化为非容器类型(它可以是数组类型):通常是 bean、数组或包装类型(如 Boolean)。**
122<T> T readValue(JsonParser p, JavaType valueType) - 类型安全的重载方法,基本上是 readValue(JsonParser, Class) 的别名。
123<T> T readValue(JsonParser p, ResolvedType valueType) - 此方法将 JSON 内容反序列化为 Java 类型,对该类型的引用作为参数传递。
124<T> T readValue(JsonParser p, TypeReference<?> valueTypeRef) - 此方法将 JSON 内容反序列化为 Java 类型,对该类型的引用作为参数传递。
125<T> T readValue(Reader src, Class<T> valueType) -
1<T> T readValue(Reader src, JavaType valueType)
126<T> T readValue(Reader src, TypeReference valueTypeRef)
127<T> T readValue(String content, Class<T> valueType) - 此方法将给定 JSON 内容字符串中的 JSON 内容反序列化。
128<T> T readValue(String content, JavaType valueType) - 此方法将给定 JSON 内容字符串中的 JSON 内容反序列化。
129<T> T readValue(String content, TypeReference valueTypeRef) - 此方法将给定 JSON 内容字符串中的 JSON 内容反序列化。
130<T> T readValue(URL src, Class<T> valueType) - 此方法将给定资源中的 JSON 内容反序列化为给定的 Java 类型。
131<T> T readValue(URL src, JavaType valueType)
132<T> T readValue(URL src, TypeReference valueTypeRef) - 此方法将给定资源中的 JSON 内容反序列化为给定的 Java 类型。
133<T> MappingIterator<T> readValues(JsonParser p, Class<T> valueType) - 方便方法,在功能上等效于
134<T> MappingIterator<T> readValues(JsonParser p, JavaType valueType) - 方便方法,在功能上等效于
135<T> MappingIterator<T> readValues(JsonParser p, ResolvedType valueType) - 方便方法,在功能上等效于
136<T> MappingIterator<T> readValues(JsonParser p, TypeReference<?>valueTypeRef) - 此方法用于从解析器流中读取对象序列。
137ObjectMapper registerModule(Module module) - 此方法用于注册可以扩展此映射器提供的功能的模块;例如,通过添加自定义序列化器和反序列化器的提供程序。
138ObjectMapper registerModules(Iterable<Module> modules) - 此便捷方法用于按顺序注册指定的模块;在功能上等效于
139ObjectMapper registerModules(Module... modules) - 此便捷方法用于按顺序注册指定的模块;在功能上等效于
140void registerSubtypes(NamedType... types) - 此方法用于注册指定的类作为子类型,以便基于类型的解析可以将超类型链接到子类型(作为使用注释的替代方法)。
141ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai) - 此方法用于设置此映射器实例在序列化和反序列化中使用的 AnnotationIntrospector。
142ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) - 此方法用于更改此映射器实例在序列化和反序列化过程中使用的 AnnotationIntrospector 实例,分别指定它们以便可以对不同方面使用不同的内省。
143ObjectMapper setBase64Variant(Base64Variant v) - 此方法将配置 byte[] 序列化器和反序列化器将使用的默认 Base64Variant。
144ObjectMapper setConfig(DeserializationConfig config) - 此方法允许覆盖底层的 DeserializationConfig 对象。
145ObjectMapper setConfig(SerializationConfig config) - 此方法允许覆盖底层的 SerializationConfig 对象,其中包含特定于序列化的配置设置。
146ObjectMapper setDateFormat(DateFormat dateFormat) - 此方法用于配置在将时间值序列化为字符串以及从 JSON 字符串反序列化时使用的默认 DateFormat。
147ObjectMapper setDefaultPrettyPrinter(PrettyPrinter pp) - 此方法用于指定在启用“默认漂亮打印”(通过启用 SerializationFeature.INDENT_OUTPUT)时使用的 PrettyPrinter。
148ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer) - 此方法用于启用类型信息的自动包含,使用指定的处理程序对象来确定这会影响哪些类型,以及信息嵌入方式的详细信息。
149ObjectMapper setFilterProvider(FilterProvider filterProvider) - 此方法用于配置此映射器以使用指定的 FilterProvider 将 Filter ID 映射到实际的过滤器实例。
150Object setHandlerInstantiator(HandlerInstantiator hi) - 此方法用于配置 HandlerInstantiator,用于根据类创建处理程序(例如序列化器、反序列化器、类型和类型 ID 解析器)的实例。
151ObjectMapper setInjectableValues(InjectableValues injectableValues) - 此方法用于配置 InjectableValues,用于查找要注入的值。
152ObjectMapper setLocale(Locale l) - 此方法用于覆盖用于格式化的默认区域设置。
153void setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins) - 已弃用。自 2.5 版起:已被该方法的流畅形式取代;setMixIns(java.util.Map<java.lang.Class<?>, java.lang.Class<?>>)。
154ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver) - 此方法可以用来指定给定的解析器,用于查找要使用的 mix-in 类,从而覆盖直接添加的映射。
155ObjectMapper setMixIns(Map<Class<?>,Class<?>> sourceMixins) - 此方法用于定义要使用的 mix-in 注解,以增强可处理(可序列化/可反序列化)类具有的注解。
156ObjectMapper setNodeFactory(JsonNodeFactory f) - 此方法用于指定 JsonNodeFactory,用于构造根级别树节点(通过方法 createObjectNode())。
157ObjectMapper setPropertyInclusion(JsonInclude.Value incl) - 此方法用于设置序列化的默认 POJO 属性包含策略。
158ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s) - 此方法用于设置要使用的自定义属性命名策略。
159ObjectMapper setSerializationInclusion(JsonInclude.Include incl) - 简便方法,等效于调用
160ObjectMapper setSerializerFactory(SerializerFactory f) - 此方法用于设置要用于构造(bean)序列化器的特定 SerializerFactory。
161ObjectMapper setSerializerProvider(DefaultSerializerProvider p) - 此方法用于设置“蓝图”SerializerProvider 实例,将其用作实际提供程序实例的基础,用于处理 JsonSerializer 实例的缓存。
162ObjectMapper setSubtypeResolver(SubtypeResolver str) - 此方法用于设置要使用的自定义子类型解析器。
163ObjectMapper setTimeZone(TimeZone tz) - 此方法用于覆盖用于格式化的默认时区。
164ObjectMapper setTypeFactory(TypeFactory f) - 此方法可用于覆盖此映射器使用的 TypeFactory 实例。
165ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility) - 简便方法,允许更改底层 VisibilityCheckers 的配置,以更改自动检测哪些类型的属性的详细信息。
166ObjectMapper setVisibility(VisibilityChecker<?> vc) - 此方法用于设置当前配置的 VisibilityChecker,该对象用于确定是否可以自动检测给定的属性元素(方法、字段、构造函数)。
167void setVisibilityChecker(VisibilityChecker<?> vc) - 已弃用。自 2.6 版起,请改用 setVisibility(VisibilityChecker)。
168JsonParser treeAsTokens(TreeNode n) - 此方法用于根据 JSON 树表示构造 JsonParser。
169<T> T treeToValue(TreeNode n, Class<T> valueType) - 简便转换方法,它将给定 JSON 树包含的数据绑定到特定值(通常是 bean)类型。
170<T extends JsonNode> T valueToTree(Object fromValue) - treeToValue(com.fasterxml.jackson.core.TreeNode, java.lang.Class<T>) 的反向操作;给定一个值(通常是 bean),将构造等效的 JSON 树表示。
171Version version() - 此方法将返回存储在包含此类的 jar 中并从中读取的版本信息。
172ObjectWriter writer() - 用于使用默认设置构造 ObjectWriter 的简便方法。
173ObjectWriter writer(Base64Variant defaultBase64) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将对 Base64 编码的二进制数据使用指定的 Base64 编码变体。
174ObjectWriter writer(CharacterEscapes escapes) -
175ObjectWriter writer(ContextAttributes attrs) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将使用指定的默认属性。
176ObjectWriter writer(DateFormat df) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将使用指定的 DateFormat 序列化对象;或者,如果传递 null,则使用时间戳(64 位数字)。
177ObjectWriter writer(FilterProvider filterProvider) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将使用指定的过滤器提供程序序列化对象。
178ObjectWriter writer(FormatSchema schema) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将将特定的模式对象传递给用于写入内容的 JsonGenerator。
179ObjectWriter writer(PrettyPrinter pp) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将使用指定的漂亮打印机进行缩进序列化对象(或者如果为 null,则不使用漂亮打印机)。
180ObjectWriter writer(SerializationFeature feature) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 启用了指定的特性(与该映射器实例具有的设置相比)。
181ObjectWriter writer(SerializationFeature first, SerializationFeature... other) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 启用了指定的特性(与该映射器实例具有的设置相比)。
182ObjectWriter writerFor(Class<?> rootType) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将使用指定的根类型序列化对象,而不是值的实际运行时类型。
183ObjectWriter writerFor(JavaType rootType) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将使用指定的根类型序列化对象,而不是值的实际运行时类型。
184ObjectWriter writerFor(TypeReference<?> rootType) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将使用指定的根类型序列化对象,而不是值的实际运行时类型。
185ObjectWriter writerWithDefaultPrettyPrinter() - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将使用默认的漂亮打印机进行缩进序列化对象。
186ObjectWriter writerWithType(Class<?> rootType) - 已弃用。自 2.5 版起,请改用 writerFor(Class)。
187ObjectWriter writerWithType(JavaType rootType) - 已弃用。自 2.5 版起,请改用 writerFor(JavaType)。
188ObjectWriter writerWithType(TypeReference<?> rootType) - 已弃用。自 2.5 版起,请改用 writerFor(TypeReference)。
189ObjectWriter writerWithView(Class<?> serializationView) - 用于构造 ObjectWriter 的工厂方法,该 ObjectWriter 将使用指定的 JSON 视图(过滤器)序列化对象。
190void writeTree(JsonGenerator jgen, JsonNode rootNode) - 此方法使用提供的生成器序列化给定的 JSON 树。
191void writeTree(JsonGenerator jgen, TreeNode rootNode)
192void writeValue(DataOutput out, Object value)
193void writeValue(File resultFile, Object value) - 此方法可用于将任何 Java 值序列化为 JSON 输出,并将其写入提供的 File。
194void writeValue(JsonGenerator g, Object value) - 此方法可用于将任何 Java 值序列化为 JSON 输出,并使用提供的 JsonGenerator。
195void writeValue(OutputStream out, Object value) - 此方法可用于将任何 Java 值序列化为 JSON 输出,并使用提供的输出流(使用编码 JsonEncoding.UTF8)。
196void writeValue(Writer w, Object value) - 此方法可用于将任何 Java 值序列化为 JSON 输出,并使用提供的 Writer。
197byte[] writeValueAsBytes(Object value) - 此方法可用于将任何 Java 值序列化为字节数组。
198String writeValueAsString(Object value) - 此方法可用于将任何 Java 值序列化为字符串。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

ObjectMapper 示例

使用您选择的任何编辑器在例如 C:/> Jackson_WORKSPACE 中创建以下 Java 程序

文件:JacksonTester.java

import java.io.IOException;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
   
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
      
      //map json to student
      try{
         Student student = mapper.readValue(jsonString, Student.class);
         
         System.out.println(student);
         
         jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
         
         System.out.println(jsonString);
      }
      catch (JsonParseException e) { e.printStackTrace();}
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }
}

验证结果

使用 javac 编译器编译类,如下所示

C:\Jackson_WORKSPACE>javac JacksonTester.java

现在运行 jacksonTester 以查看结果

C:\Jackson_WORKSPACE>java JacksonTester

验证输出

Student [ name: Mahesh, age: 21 ]
{
  "name" : "Mahesh",
  "age" : 21
}
广告