❮ 上一节
下一节 ❯
Jackson - ObjectMapper 类
简介
ObjectMapper是Jackson库的主要参与者类。 ObjectMapper 类 ObjectMapper 提供了在基本 POJO(普通旧 Java 对象)之间或从通用 JSON 树模型 (JsonNode) 之间读取和写入 JSON 的功能,以及用于执行转换的相关功能。 它还具有高度可定制性,可以处理不同样式的 JSON 内容,并支持更高级的对象概念,例如多态性和对象标识。 ObjectMapper 还充当更高级的 ObjectReader 和 ObjectWriter 类的工厂。
类声明
以下是 com.fasterxml.jackson.databind.ObjectMapper 类的声明 −
public class ObjectMapper
extends ObjectCodec
implements Versioned, Serializable
嵌套类
S.No.
类和描述
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 - 定义如何应用混合注释的映射:键是接收附加注释的类型,值是具有"混合"注释的类型 .
protected ConfigOverrides _propertyOverrides - 当前活动的每种类型配置覆盖,通过声明的属性类型访问。
protected Set
protected ConcurrentHashMap
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
构造函数
S.No.构造函数 & 说明
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 模式生成器 (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 的工厂方法,该方法将使用指定的字符转义详细信息进行输出。
1protected void _checkInvalidCopy(Class> exp)
2protected void _configAndWriteValue(JsonGenerator g, Object value) - 调用方法来根据需要配置生成器,然后调用写入功能
3protected Object _convert(Object fromValue, JavaType toValueType) - 实际转换实现:大部分代码是内联的,而不是使用现有的读写方法。
4protected JsonDeserializer
5protected JsonToken _initForReading(JsonParser p) - 调用方法以确保给定的解析器已准备好读取数据绑定的内容。
6protected ObjectReader _newReader(DeserializationConfig config) - 工厂方法子类必须重写,以生成正确子类型的 ObjectReader 实例
7protected ObjectReader _newReader(DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues) - 工厂方法子类必须重写,以生成正确子类型的 ObjectReader 实例
8protected ObjectWriter _newWriter(SerializationConfig config) - 工厂方法子类必须重写,以生成正确子类型的 ObjectWriter 实例
9protected ObjectWriter _newWriter(SerializationConfig config, FormatSchema schema) - 工厂方法子类必须重写,以生成正确子类型的 ObjectWriter 实例
10protected ObjectWriter _newWriter(SerializationConfig config, JavaType rootType, PrettyPrinter pp) - 工厂方法子类必须重写,以生成正确子类型的 ObjectWriter 实例。
11protected Object _readMapAndClose(JsonParser p0, JavaType valueType)
12protected 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
15protected void _verifySchemaType(FormatSchema schema)
16void acceptJsonFormatVisitor(Class> type, JsonFormatVisitorWrapper visitor) - 使用指定访问者访问给定类型的类型层次结构的方法。
17void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor) - 使用指定访问者访问给定类型的类型层次结构的方法。
18ObjectMapper addHandler(DeserializationProblemHandler h) - 添加指定DeserializationProblemHandler的方法,用于处理反序列化过程中的特定问题。
19ObjectMapper addMixIn(Class> target, Class> mixinSource) - 用于添加混合注释以用于增强指定类或接口的方法。
20boolean canDeserialize(JavaType type) -可以调用该方法来检查映射器是否认为它可以反序列化给定类型的对象。
21boolean canDeserialize(JavaType type, AtomicReference
22boolean canSerialize(Class> type) - 可以调用该方法来检查映射器是否认为它可以序列化给定类的实例。
23boolean canSerialize(Class> type, AtomicReference
24ObjectMapper clearProblemHandlers() - 从此映射器中删除所有注册的 DeserializationProblemHandlers 实例的方法。
25MutableConfigOverride configOverride(Classlt;?> type) - 用于获取给定类型的可变配置覆盖对象的访问器,需要添加或更改应用于给定类型的属性的每个类型覆盖。
26ObjectMapper configure(DeserializationFeature f, boolean state) - 更改此对象映射器的开/关反序列化功能状态的方法。
27ObjectMapper configure(JsonGenerator.Feature f, boolean state) - 用于更改此对象映射器创建的生成器实例的开/关 JsonGenerator 功能状态的方法。
28ObjectMapper configure(JsonParser.Feature f, boolean state) - 用于更改指定 JsonParser 状态的方法。此对象映射器创建的解析器实例的功能。
29ObjectMapper configure(MapperFeature f, boolean state) - 更改此映射器实例的开/关映射器功能状态的方法。
30ObjectMapper configure(SerializationFeature f, boolean state) - 更改此对象映射器的开/关序列化功能状态的方法。
31JavaType constructType(Type t) - 从给定类型(通常是 java.lang.Class)构造 JavaType 的便捷方法,但没有显式上下文。
32
33
34
35ObjectMapper copy() - 用于创建与此实例具有相同初始配置的新 ObjectMapper 实例的方法。
36ArrayNode createArrayNode() - 注意:返回类型是协变的,因为基本的 ObjectCodec 抽象不能引用具体的节点类型(因为它是核心包的一部分,而 impls 是映射器包的一部分)
37ObjectNode createObjectNode() - 注意:返回类型是协变的,因为基本的 ObjectCodec 抽象不能引用具体的节点类型(因为它是核心包的一部分,而 impls 是映射器包的一部分)
38protected ClassIntrospector
defaultClassIntrospector() - 用于构造要使用的默认 ClassIntrospector 的可重写帮助器方法。
39ObjectMapper disable(DeserializationFeature feature) - 启用指定DeserializationConfig功能的方法。
40ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f) - 启用指定DeserializationConfig功能的方法。
41ObjectMapper disable(JsonGenerator.Feature... features) - 禁用此对象映射器创建的解析器实例的指定 JsonGenerator.Features 的方法。
42ObjectMapper disable(JsonParser.Feature... features) - 禁用此对象映射器创建的解析器实例的指定 JsonParser.Features 的方法。
43ObjectMapper disable(MapperFeature... f) - 启用指定DeserializationConfig功能的方法。
44ObjectMapper disable(SerializationFeature f) - 启用指定DeserializationConfig功能的方法。
45ObjectMapper disable(SerializationFeature first, SerializationFeature... f) - 启用指定DeserializationConfig功能的方法。
46ObjectMapper disableDefaultTyping() - 禁止自动包含类型信息的方法; 如果是这样,只有显式注释的类型(具有 JsonTypeInfo 的类型)才会具有附加的嵌入类型信息。
47ObjectMapper enable(DeserializationFeature feature) - 启用指定DeserializationConfig功能的方法。
48ObjectMapper 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
61static List
62DateFormat getDateFormat()
63DeserializationConfig getDeserializationConfig() - 返回定义反序列化配置设置的共享默认 DeserializationConfig 对象的方法。
64DeserializationContext getDeserializationContext() - 获取当前DeserializationContext的方法。
65JsonFactory getFactory() - 如果需要构造 JsonParsers 和/或 JsonGenerators,可用于获取此映射器使用的 JsonFactory 的方法。
66InjectableValues getInjectableValues()
67JsonFactory getJsonFactory() - 已弃用。 从 2.1 开始:使用 getFactory() 代替
68JsonNodeFactory getNodeFactory() - 可用于获取此映射器在直接构造树的根 JsonNode 实例时将使用的 JsonNodeFactory 的方法。
69PropertyNamingStrategy getPropertyNamingStrategy()
70SerializationConfig getSerializationConfig() - 返回定义序列化配置设置的共享默认 SerializationConfig 对象的方法。
71SerializerFactory getSerializerFactory() - 获取当前SerializerFactory的方法。
72SerializerProvider getSerializerProvider() - "blueprint"(或工厂)实例的访问器,通过调用 DefaultSerializerProvider.createInstance(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory) 从该实例创建实例。 TD>
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) - 用于构造 ObjectReader 的工厂方法,它将使用指定的 Base64 编码变体来处理 Base64 编码的二进制数据。
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) - 用于构造 ObjectReader 的工厂方法,它将特定的架构对象传递给用于读取内容的 JsonParser。
91ObjectReader reader(InjectableValues injectableValues) - 用于构造将使用指定的可注入值的 ObjectReader 的工厂方法。
92ObjectReader reader(JavaType type) - 已弃用。 从2.5开始,改用readerFor(JavaType)
93ObjectReader reader(JsonNodeFactory f) - 用于构造 ObjectReader 的工厂方法,它将使用指定的 JsonNodeFactory 来构造 JSON 树。
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) - 用于构造 ObjectReader 的工厂方法,它将使用 JSON 数据更新给定的对象(通常是 Bean,但也可以是 Collection 或 Map,但不是数组)。
99ObjectReader readerWithView(Class> view) - 用于构造 ObjectReader 的工厂方法,该方法将使用指定的 JSON 视图(过滤器)反序列化对象。
100JsonNode readTree(byte[] content) - 将 JSON 内容反序列化为使用 JsonNode 实例集表示的树的方法。
101JsonNode readTree(File file) - 将 JSON 内容反序列化为使用 JsonNode 实例集表示的树的方法。
102JsonNode readTree(InputStream in) - 将 JSON 内容反序列化为使用 JsonNode 实例集表示的树的方法。
103
104JsonNode readTree(Reader r) - 将 JSON 内容反序列化为使用 JsonNode 实例集表示的树的方法。
105JsonNode readTree(String content) - 将 JSON 内容反序列化为使用 JsonNode 实例集表示的树的方法。
106JsonNode readTree(URL source) - 将 JSON 内容反序列化为使用 JsonNode 实例集表示的树的方法。
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
readValues(JsonParser p, Class
134
readValues(JsonParser p, JavaType valueType) - 便捷方法,功能等同于:
135
readValues(JsonParser p, ResolvedType valueType) - 便捷方法,功能等同于:
136
readValues(JsonParser p, TypeReference>valueTypeRef) - 从解析器流中读取对象序列的方法。
137ObjectMapper registerModule(Module module) - 注册可扩展此映射器提供的功能的模块的方法; 例如,通过添加自定义序列化器和反序列化器的提供程序。
138ObjectMapper registerModules(Iterable
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) - 启用"默认PrettyPrinter"时指定要使用的 PrettyPrinter 的方法(通过启用 SerializationFeature.INDENT_OUTPUT)
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
154ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver) - 可以调用该方法来指定给定的解析器,以定位要使用的混合类,覆盖直接添加的映射。
155ObjectMapper setMixIns(Map
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) - 设置"blueprint(蓝图)"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
170
171Version version() - 将返回存储在包含此类的 jar 中并从中读取版本信息的方法。
172ObjectWriter writer() - 使用默认设置构造 ObjectWriter 的便捷方法。
173ObjectWriter writer(Base64Variant defaultBase64) - 用于构造 ObjectWriter 的工厂方法,它将使用指定的 Base64 编码变体来处理 Base64 编码的二进制数据。
174ObjectWriter writer(CharacterEscapes escapes) -
175ObjectWriter writer(ContextAttributes attrs) - 用于构造将使用指定默认属性的 ObjectWriter 的工厂方法。
176ObjectWriter writer(DateFormat df) - 用于构造 ObjectWriter 的工厂方法,该方法将使用指定的 DateFormat 序列化对象; 或者,如果传递 null,则使用时间戳(64 位数字)。
177ObjectWriter writer(FilterProvider filterProvider) - 用于构造 ObjectWriter 的工厂方法,该方法将使用指定的过滤器提供程序序列化对象。
178ObjectWriter writer(FormatSchema schema) - 用于构造 ObjectWriter 的工厂方法,它将特定的架构对象传递给用于写入内容的 JsonGenerator。
179ObjectWriter writer(PrettyPrinter pp) - 用于构造 ObjectWriter 的工厂方法,该方法将使用指定的prettyprinter进行缩进序列化对象(或者如果为 null,则没有prettyprinter)
180ObjectWriter writer(SerializationFeature feature) - 用于构造启用指定功能的 ObjectWriter 的工厂方法(与此映射器实例具有的设置相比)。
181ObjectWriter writer(SerializationFeature first, SerializationFeature... other) - 用于构造启用指定功能的 ObjectWriter 的工厂方法(与此映射器实例具有的设置相比)。
182ObjectWriter writerFor(Class> rootType) - 用于构造 ObjectWriter 的工厂方法,该方法将使用指定的根类型而不是值的实际运行时类型来序列化对象。
183ObjectWriter writerFor(JavaType rootType) - 用于构造 ObjectWriter 的工厂方法,该方法将使用指定的根类型而不是值的实际运行时类型来序列化对象。
184ObjectWriter writerFor(TypeReference> rootType) - 用于构造 ObjectWriter 的工厂方法,该方法将使用指定的根类型而不是值的实际运行时类型来序列化对象。
185ObjectWriter writerWithDefaultPrettyPrinter() - 用于构造 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 的工厂方法,该方法将使用指定的 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 输出并写入提供的文件的方法。
194void writeValue(JsonGenerator g, Object value) - 可用于使用提供的 JsonGenerator 将任何 Java 值序列化为 JSON 输出的方法。
195void writeValue(OutputStream out, Object value) - 可用于使用提供的输出流(使用编码 JsonEncoding.UTF8)将任何 Java 值序列化为 JSON 输出的方法。
196void writeValue(Writer w, Object value) - 使用提供的 Writer 将任何 Java 值序列化为 JSON 输出的方法。
197byte[] writeValueAsBytes(Object value) - 可用于将任何 Java 值序列化为字节数组的方法。
198String writeValueAsString(Object value) - 可用于将任何 Java 值序列化为字符串的方法。
继承的方法
该类继承了以下类的方法:
java.lang.Object
对象映射器示例
使用您选择的任何编辑器创建以下 java 程序,例如 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+ " ]";
}
}
验证结果
使用javac编译器编译类,如下所示:
C:\Jackson_WORKSPACE>javac JacksonTester.java
现在运行 jacksonTester 查看结果:
C:\Jackson_WORKSPACE>java JacksonTester
验证输出
Student [ name: Mahesh, age: 21 ]
{
"name" : "Mahesh",
"age" : 21
}
❮ 上一节
下一节 ❯