| Package | Description |
|---|---|
| org.dromara.hutool.json |
JSON(JavaScript Object Notation JavaScript对象表示法)封装
规范见:https://www.rfc-editor.org/rfc/rfc8259 包含以下组件: JSONObject: 使用键值对表示的数据类型,使用"{}"包围 JSONArray: 使用列表表示的数据类型,使用"[]"包围 JSONPrimitive:表示boolean、String、Number等原始类型 JSON封装主要包括JSON表示和JSON转换:
-----JSONMapper-----> ---JSONWriter---->
Java对象 <====================> JSON对象 <=================> JSON字符串
<-----JSONMapper----- <---JSONParser----
当然,为了高效转换,如果没有自定义需求,Java对象可以不通过JSON对象与JSON字符串转换:
JSONTokener:JSON字符串底层解析器,通过Stream方式读取JSON字符串并对不同字段自定义处理。 |
| org.dromara.hutool.json.serializer |
JSON序列化和反序列化,提供对象和JSON之间的转换,我们定义:
1.
|
| org.dromara.hutool.json.serializer.impl |
默认实现的序列化和反序列化
|
| Modifier and Type | Method and Description |
|---|---|
JSONFactory |
JSONFactory.register(TypeAdapter typeAdapter)
注册自定义类型适配器,用于自定义对象序列化和反序列化
提供的适配器必须为实现 MatcherJSONSerializer或MatcherJSONDeserializer接口当两个接口都实现时,同时注册序列化和反序列化器 |
JSONFactory |
JSONFactory.register(Type type,
TypeAdapter typeAdapter)
注册自定义类型适配器,用于自定义对象序列化和反序列化
|
void |
JSONUtil.registerTypeAdapter(TypeAdapter typeAdapter)
全局注册自定义类型适配器,用于自定义对象序列化和反序列化
提供的适配器必须为实现 MatcherJSONSerializer或MatcherJSONDeserializer接口当两个接口都实现时,同时注册序列化和反序列化器 |
void |
JSONUtil.registerTypeAdapter(Type type,
TypeAdapter typeAdapter)
全局注册自定义类型适配器,用于自定义对象序列化和反序列化
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
JSONDeserializer<V>
JSON自定义反序列化接口,实现
JSON to Bean,主要作用于JSON转为Java对象时,使用方式为:
定义好反序列化规则,关联指定类型与转换器实现反序列化。 |
interface |
JSONSerializer<V>
序列化接口,通过实现此接口,实现自定义的对象转换为JSON的操作
序列化主要作用于Java对象转为JSON时 |
interface |
MatcherJSONDeserializer<V>
带有匹配方法的 JSON反序列化器
匹配方法返回true表示匹配,反序列化器将执行反序列化操作 |
interface |
MatcherJSONSerializer<V>
匹配JSON序列化器,用于判断是否匹配,匹配则执行序列化
|
| Modifier and Type | Method and Description |
|---|---|
TypeAdapterManager |
TypeAdapterManager.register(TypeAdapter typeAdapter)
注册自定义类型适配器,用于自定义对象序列化和反序列化
提供的适配器必须为实现 MatcherJSONSerializer或MatcherJSONDeserializer接口当两个接口都实现时,同时注册序列化和反序列化器 |
JSONMapper |
JSONMapper.register(TypeAdapter typeAdapter)
注册自定义类型适配器,用于自定义对象序列化和反序列化
提供的适配器必须为实现 MatcherJSONSerializer或MatcherJSONDeserializer接口当两个接口都实现时,同时注册序列化和反序列化器 |
TypeAdapterManager |
TypeAdapterManager.register(Type type,
TypeAdapter typeAdapter)
注册自定义类型适配器,用于自定义对象序列化和反序列化
|
JSONMapper |
JSONMapper.register(Type type,
TypeAdapter typeAdapter)
注册自定义类型适配器,用于自定义对象序列化和反序列化
|
| Modifier and Type | Class and Description |
|---|---|
class |
ArrayTypeAdapter
Map.Entry反序列化器,用于将JSON对象转换为Map.Entry对象。
|
class |
BeanTypeAdapter
Bean对象适配器,将Bean对象序列化为JSONObject,反序列化为Bean对象
|
class |
CalendarTypeAdapter
日期类型适配器,用于将日期对象转换为给定格式或时间戳
|
class |
CharSequenceTypeAdapter
CharSequence类型适配器,主要用于:
序列化(serialize):按照给定类型,解析JSON或XML字符串为JSON
反序列化(deserialize):如果为原始值,返回原始值并调用toString方法,其他JSON对象直接转为JSON字符换。 |
class |
ClassTypeAdapter
Class类型适配器,用于将Class对象序列化为字符串,反序列化为Class对象
注意:考虑安全问题,此类并不作为默认的适配器,如需启用,需: {@code final JSONFactory factory = JSONFactory.of(null, null); factory.register(Class |
class |
DateTypeAdapter
日期类型适配器,用于将日期对象转换为给定格式或时间戳
|
class |
DefaultDeserializer
默认反序列化器,用于处理未匹配的JSON类型。
|
class |
EntryTypeAdapter
Map.Entry序列化和反序列化器,用于将JSON对象和Map.Entry对象互转。
|
class |
EnumTypeAdapter
枚举类型适配器,将枚举转换为字符串,反序列化时将字符串转为枚举对象
|
class |
IterTypeAdapter
|
class |
JSONPrimitiveDeserializer
JSONPrimitive相关类型反序列化器 |
class |
KBeanDeserializer
Kotlin对象反序列化器
issue#I5WDP0 对于Kotlin对象,由于参数可能非空限制,导致无法创建一个默认的对象再赋值 |
class |
MapTypeAdapter
Map类型适配器,用于将JSON对象和Map对象互转。
|
class |
PairDeserializer
二元组反序列化器
|
class |
RecordDeserializer
Record反序列化器,用于将JSON对象转换为Record类型对象。
|
class |
ResourceBundleSerializer
ResourceBundle序列化器 |
class |
ResourceSerializer
Resource序列化器 |
class |
TemporalTypeAdapter
TemporalAccessor的JSON自定义序列化实现,支持包括:LocalDate LocalDateTime LocalTime |
class |
ThrowableTypeAdapter
Throwable类型适配器,用于将Throwable对象转换为JSON对象
|
class |
TimeZoneTypeAdapter
时区类型适配器
|
class |
TokenerSerializer
JSONTokener及其读取流的JSON序列化器实现
|
class |
TripleDeserializer
三元组反序列化器
|
class |
TupleDeserializer
多元组Tuple反序列化器
|
Copyright © 2025. All rights reserved.