目录

jackson - ObjectMapper类( ObjectMapper Class)

介绍 (Introduction)

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

Class 声明 (Class Declaration)

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

public class ObjectMapper
   extends ObjectCodec
      implements Versioned, Serializable

嵌套类 (Nested Classes)

S.No. 类和描述
1 static class ObjectMapper.DefaultTypeResolverBuilder

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

2 static class ObjectMapper.DefaultTyping

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

字段 (Fields)

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

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

  • protected InjectableValues _injectableValues - 要在反序列化的POJO中注入的值的提供者。

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

  • protected SimpleMixInResolver _mixIns - 定义如何应用混合注释的映射:key是接收附加注释的类型,value是具有“混入”注释的类型。

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

  • protected Set《Object》 _registeredModuleTypes - 模块类型集(根据Module.getTypeId()已注册;保持跟踪iff MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS,以便可以忽略重复的注册调用(以避免多次添加相同的处理程序) ,主要是)。

  • protected ConcurrentHashMap《JavaType,JsonDeserializer《Object》》 _rootDeserializers - 我们将使用一个单独的主级别Map来跟踪根级别的反序列化器。

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

  • protected SerializerFactory _serializerFactory - 用于构造序列protected SerializerFactory _serializerFactory Serializer工厂。

  • 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

构造函数 (Constructors)

S.No. 构造函数和描述
1 ObjectMapper()

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

2 ObjectMapper(JsonFactory jf)

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

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

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

4 protected ObjectMapper(ObjectMapper src)

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

方法 (Methods)

用于构造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)代替(允许链接)Factory方法,用于构造ObjectReader,它将使用指定的字符转义细节进行输出。
1 protected 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实例。
11 protected Object _readMapAndClose(JsonParser p0, JavaType valueType)
12 protected Object _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) - 值读取+绑定操作的实际实现。
13 protected DefaultSerializerProvider _serializerProvider(SerializationConfig config)
14 protected Object _unwrapAndDeserialize(JsonParser p, DeserializationContext ctxt, DeserializationConfig config, JavaType rootType, JsonDeserializer<Object> deser)
15 protected 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) - 用于添加混合注释以用于扩充指定类或接口的方法。
20 boolean canDeserialize(JavaType type) - 可以调用以检查mapper是否认为它可以反序列化给定类型的Object的方法。
21 boolean canDeserialize(JavaType type, AtomicReference<Throwable> cause) - 类似于canDeserialize(JavaType)但可以返回在尝试构造序列化程序时抛出的实际Throwable的方法:这可能有助于确定实际问题是什么。
22 boolean canSerialize(Class<?> type) - 可以调用的方法,用于检查mapper是否认为它可以序列化给定Class的实例。
23 boolean canSerialize(Class<?> type, AtomicReference<Throwable> cause) - 类似于canSerialize(Class)的方法但可以返回在尝试构造序列化程序时抛出的实际Throwable:这可能有助于确定实际问题是什么。
24 ObjectMapper clearProblemHandlers() - 从此映射器中删除所有已注册的DeserializationProblemHandlers实例的方法。
25 MutableConfigOverride configOverride(Classlt;?> 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是mapper包的一部分)
37 ObjectNode createObjectNode() - 注意:返回类型是共变体,因为基本的ObjectCodec抽象不能引用具体的节点类型(因为它是核心包的一部分,而impls是mapper包的一部分)
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功能的方法。
49 ObjectMapper enable(JsonGenerator.Feature... features) - 为此对象映射器创建的解析器实例启用指定的JsonGenerator.Features的方法。
50 ObjectMapper enable(JsonParser.Feature... features) - 为此对象映射器创建的解析器实例启用指定JsonParser.Features的方法。
51 ObjectMapper enable(MapperFeature... f) - 启用指定MapperConfig功能的方法。
52 ObjectMapper enable(SerializationFeature f) - 启用指定DeserializationConfig功能的方法。
53 ObjectMapper enable(SerializationFeature first, SerializationFeature... f) - 启用指定DeserializationConfig功能的方法。
54 ObjectMapper enableDefaultTyping() - 等同于调用的便捷方法
55 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti) - 等同于调用的便捷方法
56 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs) - 允许自动包含类型信息的方法,正确反序列化多态类型所需(除非使用JsonTypeInfo注释类型)。
57 ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, String propertyName) - 启用自动包含类型信息的方法 - 正确反序列化多态类型所需的方法(除非使用JsonTypeInfo注释类型) - 使用“As.PROPERTY”包含机制并指定要包含的属性名称(默认为“@class”,因为默认类型信息始终使用类名作为类型标识符)
58 ObjectMapper findAndRegisterModules() - 在功能上等同于:mapper.registerModules(mapper.findModules());
59 Class<?> findMixInClassFor(Class<?> cls)
60 static List<Module> findModules() - 使用JDK ServiceLoader工具定位可用方法的方法,以及模块提供的SPI。
61 static List<Module> findModules(ClassLoader classLoader) - 使用JDK ServiceLoader工具查找可用方法的方法,以及模块提供的SPI。
62 DateFormat getDateFormat()
63 DeserializationConfig getDeserializationConfig() - 返回共享默认DeserializationConfig对象的方法,该对象定义反序列化的配置设置。
64 DeserializationContext getDeserializationContext() - 获取当前DeserializationContext的方法。
65 JsonFactory getFactory() - 可用于获取此映射器在需要构造JsonParsers和/或JsonGenerators时使用的JsonFactory的方法。
66 InjectableValues getInjectableValues()
67 JsonFactory getJsonFactory() - 已弃用。 从2.1开始:改用getFactory()
68 JsonNodeFactory getNodeFactory() - 可用于获取此映射器在直接构造树的根JsonNode实例时将使用的JsonNodeFactory的方法。
69 PropertyNamingStrategy getPropertyNamingStrategy()
70 SerializationConfig getSerializationConfig() - 返回定义序列化配置设置的共享默认SerializationConfig对象的方法。
71 SerializerFactory getSerializerFactory() - 获取当前SerializerFactory的方法。
72 SerializerProvider getSerializerProvider() - “蓝图”(或工厂)实例的访问器,通过调用DefaultSerializerProvider.createInstance(com.fasterxml.jackson.databind.SerializationConfig,com.fasterxml.jackson.databind.ser.SerializerFactory)从中创建实例。 )。
73 SerializerProvider getSerializerProviderInstance() - 用于构造和返回可用于访问序列化程序的SerializerProvider实例的访问器。
74 SubtypeResolver getSubtypeResolver() - 访问正在使用的子类型解析器的方法。
75 TypeFactory getTypeFactory() - 用于获取当前配置的TypeFactory实例的访问器。
76 VisibilityChecker<?> getVisibilityChecker() - 访问当前配置的可见性检查器的方法; 用于确定是否可以自动检测给定属性元素(方法,字段,构造函数)的对象。
77 boolean isEnabled(DeserializationFeature f) - 检查是否启用给定反序列化特征的方法。
78 boolean isEnabled(JsonFactory.Feature f) - 便捷方法,相当于:
79 boolean isEnabled(JsonGenerator.Feature f)
80 boolean isEnabled(JsonParser.Feature f)
81 boolean isEnabled(MapperFeature f) - 检查是否启用给定MapperFeature的方法。
82 boolean isEnabled(SerializationFeature f) - 检查是否启用给定的序列化特定功能的方法。
83 int mixInCount()
84 ObjectReader reader() - 使用默认设置构造ObjectReader的工厂方法。
85 ObjectReader reader(Base64Variant defaultBase64) - 构造ObjectReader的工厂方法,它将为Base64编码的二进制数据使用指定的Base64编码变量。
86 ObjectReader reader(Class<?> type) - 已弃用。 从2.5开始,使用readerFor(Class)代替
87 ObjectReader reader(ContextAttributes attrs) - 用于构造ObjectReader的工厂方法,它将使用指定的默认属性。
88 ObjectReader reader(DeserializationFeature feature) - 用于构造启用了指定功能的ObjectReader的工厂方法(与此映射器实例具有的设置相比)。
89 ObjectReader reader(DeserializationFeature first, DeserializationFeature... other) - 用于构造启用了指定功能的ObjectReader的工厂方法(与此映射器实例具有的设置相比)。
90 ObjectReader reader(FormatSchema schema) - 用于构造ObjectReader的工厂方法,它将特定的模式对象传递给用于读取内容的JsonParser。
91 ObjectReader reader(InjectableValues injectableValues) - 用于构造ObjectReader的工厂方法,它将使用指定的可注入值。
92 ObjectReader reader(JavaType type) - 已弃用。 从2.5开始,使用readerFor(JavaType)代替
93 ObjectReader reader(JsonNodeFactory f) - 构造ObjectReader的工厂方法,它将使用指定的JsonNodeFactory构造JSON树。
94 ObjectReader reader(TypeReference<?> type) - 已弃用。 从2.5开始,使用readerFor(TypeReference)代替
95 ObjectReader readerFor(Class<?> type) - 用于构造ObjectReader的工厂方法,用于读取或更新指定类型的实例
96 ObjectReader readerFor(JavaType type) - 用于构造ObjectReader的工厂方法,用于读取或更新指定类型的实例
97 ObjectReader readerFor(TypeReference<?> type) - 用于构造ObjectReader的工厂方法,用于读取或更新指定类型的实例
98 ObjectReader readerForUpdating(Object valueToUpdate) - 构造ObjectReader的工厂方法,它将使用JSON数据更新给定的Object(通常是Bean,但也可以是Collection或Map,但不是数组)。
99 ObjectReader readerWithView(Class<?> view) - 构造ObjectReader的工厂方法,它将使用指定的JSON View(过滤器)反序列化对象。
100 JsonNode readTree(byte[] content) - 将JSON内容反序列化为使用JsonNode实例集表示的树的方法。
101 JsonNode readTree(File file) - 将JSON内容反序列化为使用JsonNode实例集表示的树的方法。
102 JsonNode readTree(InputStream in) - 将JSON内容反序列化为使用JsonNode实例集表示的树的方法。
103 <T extends TreeNode> T readTree(JsonParser p) - 将JSON内容反序列化为使用JsonNode实例集表示的树的方法。
104 JsonNode readTree(Reader r) - 将JSON内容反序列化为使用JsonNode实例集表示的树的方法。
105 JsonNode readTree(String content) - 将JSON内容反序列化为使用JsonNode实例集表示的树的方法。
106 JsonNode 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) - Method to deserialize JSON content into a non-container type (it can be an array type, however): typically a bean, array or a wrapper type (like 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) - 从解析器流中读取对象序列的方法。
137 ObjectMapper registerModule(Module module) - 注册可以扩展此映射器提供的功能的模块的方法; 例如,通过添加自定义序列化程序和反序列化程序的提供程序。
138 ObjectMapper registerModules(Iterable<Module> modules) - 按顺序注册指定模块的便捷方法; 功能相当于:
139 ObjectMapper registerModules(Module... modules) - 按顺序注册指定模块的便捷方法; 功能相当于:
140 void registerSubtypes(NamedType... types) - 将指定类注册为子类型的方法,以便基于类型的解析可以void registerSubtypes(NamedType... types)链接到子类型(作为使用注释的替代方法)。
141 ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai) - 用于设置此映射器实例用于序列化和反序列化的AnnotationIntrospector的方法。
142 ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) - 用于更改此映射器实例用于序列化和反序列化的AnnotationIntrospector实例的方法,单独指定它们,以便可以将不同的内省用于不同的方面。
143 ObjectMapper setBase64Variant(Base64Variant v) - 将配置byte []序列化器和反序列化器将使用的默认Base64Variant的方法。
144 ObjectMapper setConfig(DeserializationConfig config) - 允许覆盖底层DeserializationConfig对象的方法。
145 ObjectMapper setConfig(SerializationConfig config) - 允许覆盖基础SerializationConfig对象的方法,该对象包含特定于序列化的配置设置。
146 ObjectMapper setDateFormat(DateFormat dateFormat) - 配置在将时间值序列化为字符串时使用的默认DateFormat以及从JSON字符串反序列化的方法。
147 ObjectMapper setDefaultPrettyPrinter(PrettyPrinter pp) - 指定在启用“默认漂亮打印”时使用的PrettyPrinter的方法(通过启用SerializationFeature.INDENT_OUTPUT)
148 ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer) - 使用指定的处理程序对象来确定自动包含类型信息的方法,用于确定影响哪些类型,以及如何嵌入信息的详细信息。
149 ObjectMapper setFilterProvider(FilterProvider filterProvider) - 配置此映射器以使用指定的FilterProvider将Filter Ids映射到实际过滤器实例的方法。
150 Object setHandlerInstantiator(HandlerInstantiator hi) - 在给定类的情况下,配置HandlerInstantiator以用于创建处理程序实例(如序列化程序,反序列化程序,类型和类型id解析程序)的方法。
151 ObjectMapper setInjectableValues(InjectableValues injectableValues) - 用于配置InjectableValues的方法,用于查找要注入的值。
152 ObjectMapper setLocale(Locale l) - 覆盖用于格式化的默认语言环境的方法。
153 void setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins) - 已弃用。 从2.5开始:用流利的方法代替; setMixIns(java.util.Map ,java.lang.Class >)。
154 ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver) - 可以调用的方法,用于指定给定的解析器,用于定位要使用的混合类,覆盖直接添加的映射。
155 ObjectMapper setMixIns(Map<Class<?>,Class<?>> sourceMixins) - 用于定义混合注释的方法,用于扩充可处理(可序列化/可序列化)类具有的注释。
156 ObjectMapper setNodeFactory(JsonNodeFactory f) - 指定用于构造根级树节点的JsonNodeFactory的方法(通过方法createObjectNode()
157 ObjectMapper setPropertyInclusion(JsonInclude.Value incl) - 用于为序列化设置默认POJO属性包含策略的方法。
158 ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s) - 设置要使用的自定义属性命名策略的方法。
159 ObjectMapper setSerializationInclusion(JsonInclude.Include incl) - 方便方法,相当于调用:
160 ObjectMapper setSerializerFactory(SerializerFactory f) - 设置用于构造(bean)序列化程序的特定SerializerFactory的方法。
161 ObjectMapper setSerializerProvider(DefaultSerializerProvider p) - 用于设置“blueprint”SerializerProvider实例的方法,该实例用作实际提供程序实例的基础,用于处理JsonSerializer实例的缓存。
162 ObjectMapper setSubtypeResolver(SubtypeResolver str) - 设置要使用的自定义子类型解析器的方法。
163 ObjectMapper setTimeZone(TimeZone tz) - 覆盖用于格式化的默认TimeZone的方法。
164 ObjectMapper setTypeFactory(TypeFactory f) - 可用于覆盖此映射器使用的TypeFactory实例的方法。
165 ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility) - 允许更改基础VisibilityCheckers配置的便捷方法,用于更改自动检测的属性类型的详细信息。
166 ObjectMapper setVisibility(VisibilityChecker<?> vc) - 用于设置当前配置的VisibilityChecker的方法,该对象用于确定是否可以自动检测给定的属性元素(方法,字段,构造函数)。
167 void setVisibilityChecker(VisibilityChecker<?> vc) - 已弃用。 从2.6开始使用setVisibility(VisibilityChecker)代替。
168 JsonParser 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 Tree表示。
171 Version version() - 将返回包含此类的jar中存储和读取的版本信息的方法。
172 ObjectWriter writer() - 使用默认设置构造ObjectWriter的便捷方法。
173 ObjectWriter writer(Base64Variant defaultBase64) - 构造ObjectWriter的工厂方法,它将为Base64编码的二进制数据使用指定的Base64编码变量。
174 ObjectWriter writer(CharacterEscapes escapes) -
175 ObjectWriter writer(ContextAttributes attrs) - 用于构造将使用指定的默认属性的ObjectWriter的工厂方法。
176 ObjectWriter writer(DateFormat df) - 用于构造ObjectWriter的工厂方法,它将使用指定的DateFormat序列化对象; 或者,如果为null,则使用时间戳(64位数字)。
177 ObjectWriter writer(FilterProvider filterProvider) - 用于构造ObjectWriter的工厂方法,它将使用指定的过滤器提供程序序列化对象。
178 ObjectWriter writer(FormatSchema schema) - 用于构造ObjectWriter的工厂方法,该方法将特定的模式对象传递给用于编写内容的JsonGenerator。
179 ObjectWriter writer(PrettyPrinter pp) - 构造ObjectWriter的工厂方法,它将使用指定的漂亮打印机序列化对象以进行缩进(或者如果为null,则没有漂亮的打印机)
180 ObjectWriter writer(SerializationFeature feature) - 用于构造具有指定功能的ObjectWriter的工厂方法(与此映射器实例具有的设置相比)。
181 ObjectWriter writer(SerializationFeature first, SerializationFeature... other) - 用于构造具有指定功能的ObjectWriter的工厂方法(与此映射器实例具有的设置相比)。
182 ObjectWriter writerFor(Class<?> rootType) - 用于构造ObjectWriter的工厂方法,该方法将使用指定的根类型序列化对象,而不是实际的运行时类型的值。
183 ObjectWriter writerFor(JavaType rootType) - 用于构造ObjectWriter的工厂方法,该方法将使用指定的根类型序列化对象,而不是实际的运行时类型的值。
184 ObjectWriter writerFor(TypeReference<?> rootType) - 用于构造ObjectWriter的工厂方法,该方法将使用指定的根类型序列化对象,而不是实际的运行时类型的值。
185 ObjectWriter writerWithDefaultPrettyPrinter() - 用于构造ObjectWriter的工厂方法,该方法将使用默认的漂亮打印机序列化对象以进行缩进。
186 ObjectWriter writerWithType(Class<?> rootType) - 已弃用。 从2.5开始,使用writerFor(Class)代替。
187 ObjectWriter writerWithType(JavaType rootType) - 已过时。 从2.5开始,使用writerFor(JavaType)代替。
188 ObjectWriter writerWithType(TypeReference<?> rootType) - 已过时。 从2.5开始,使用writerFor(TypeReference)代替。
189 ObjectWriter writerWithView(Class<?> serializationView) - 用于构造ObjectWriter的工厂方法,它将使用指定的JSON View(过滤器)序列化对象。
190 void writeTree(JsonGenerator jgen, JsonNode rootNode) - 使用生成器提供的序列化给定JSON树的方法。
191 void writeTree(JsonGenerator jgen, TreeNode rootNode)
192 void writeValue(DataOutput out, Object value)
193 void writeValue(File resultFile, Object value) - 可用于将任何Java值序列化为JSON输出的方法,写入提供的File。
194 void writeValue(JsonGenerator g, Object value) - 可以使用提供的JsonGenerator将任何Java值序列化为JSON输出的方法。
195 void writeValue(OutputStream out, Object value) - 可以使用提供的输出流(使用编码JsonEncoding.UTF8)将任何Java值序列化为JSON输出的方法。
196 void writeValue(Writer w, Object value) - 使用Writer提供的可用于将任何Java值序列化为JSON输出的方法。
197 byte[] writeValueAsBytes(Object value) - 可用于将任何Java值序列化为字节数组的方法。
198 String writeValueAsString(Object value) - Method that can be used to serialize any Java value as a String.

方法继承

该类继承以下类中的方法:

  • java.lang.Object

ObjectMapper Example

Create the following java program using any editor of your choice in say C:/》 Jackson_WORKSPACE

File: 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+ " ]";
   }
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

现在运行jacksonTester查看结果:

C:\Jackson_WORKSPACE>java JacksonTester

验证输出

Student [ name: Mahesh, age: 21 ]
{
  "name" : "Mahesh",
  "age" : 21
}
↑回到顶部↑
WIKI教程 @2018