MapperFeature各枚举项的作用
枚举项 | 作用 |
---|---|
ACCEPT_CASE_INSENSITIVE_ENUMS | 决定枚举反序列化是否忽略大小写。如果启用,枚举反序列化将忽略大小写。 |
ACCEPT_CASE_INSENSITIVE_PROPERTIES | 决定属性名称反序列化是否忽略大小写。如果启用,属性名称反序列化将忽略大小写。 |
ACCEPT_CASE_INSENSITIVE_VALUES | 决定某些枚举类型的文本值反序列化是否忽略大小写。如果启用,这些值的反序列化将忽略大小写。 |
ALLOW_COERCION_OF_SCALARS | 决定是否允许从次要表示形式强制转换为简单的非文本标量类型。如果启用,允许从字符串转换为数字和布尔值。 |
ALLOW_EXPLICIT_PROPERTY_RENAMING | 决定显式命名的属性是否可以被PropertyNamingStrategy重命名。如果启用,显式命名的属性可以被重命名。 |
ALLOW_FINAL_FIELDS_AS_MUTATORS | 决定是否允许将声明为final的成员字段自动检测为可变更的属性。如果启用,final字段可以被检测为可变更的属性。 |
AUTO_DETECT_CREATORS | 决定是否自动检测"creator"方法。如果启用,公共构造函数和静态单参数方法将被自动检测为"creator"方法。 |
AUTO_DETECT_FIELDS | 决定是否自动检测非静态字段为属性。如果启用,所有公共成员字段将被视为属性。 |
AUTO_DETECT_GETTERS | 决定是否根据标准Bean命名约定自动检测"getter"方法。如果启用,所有以"get"开头的公共零参数方法将被视为getter。 |
AUTO_DETECT_IS_GETTERS | 决定是否根据标准Bean命名约定自动检测"is getter"方法。如果启用,所有以"is"开头且返回类型为boolean的公共零参数方法将被视为is getter。 |
AUTO_DETECT_SETTERS | 决定是否根据标准Bean命名约定自动检测"setter"方法。如果启用,所有以"set"开头的公共单参数方法将被视为setter。 |
CAN_OVERRIDE_ACCESS_MODIFIERS | 决定是否可以覆盖方法和字段的访问修饰符设置。如果启用,可以调用setAccessible方法以启用对不可访问对象的访问。 |
DEFAULT_VIEW_INCLUSION | 决定是否在JSON序列化视图中包含没有视图注释的属性。如果启用,未注释的属性将包含在所有视图中。 |
IGNORE_DUPLICATE_MODULE_REGISTRATIONS | 决定是否忽略相同模块的多次注册。如果启用,只有第一次注册调用会生效,后续的重复调用将被忽略。 |
IGNORE_MERGE_FOR_UNMERGEABLE | 决定在尝试合并不支持合并的属性时是否跳过合并并创建新值。如果启用,不支持合并的属性将跳过合并。 |
INFER_CREATOR_FROM_CONSTRUCTOR_PROPERTIES | 决定是否将java.beans.ConstructorProperties注释视为JsonCreator的别名。如果启用,构造函数将被视为基于属性的Creator。 |
INFER_PROPERTY_MUTATORS | 决定是否允许成员变更器(字段和setter)在没有可见的情况下被推断为属性变更器。如果启用,成员变更器可以被推断为属性变更器。 |
OVERRIDE_PUBLIC_ACCESS_MODIFIERS | 决定是否强制调用setAccessible方法,即使对于public访问器也是如此。如果启用,将强制调用setAccessible方法以提高性能。 |
PROPAGATE_TRANSIENT_MARKER | 决定如何处理字段的transient修饰符。如果启用,transient修饰符将导致整个属性被忽略。 |
REQUIRE_SETTERS_FOR_GETTERS | 决定是否只有在有匹配的变更器时才自动检测getter。如果启用,只有匹配变更器的getter才会被自动检测。 |
SORT_PROPERTIES_ALPHABETICALLY | 决定是否按字母顺序对POJO字段进行默认属性序列化排序。如果启用,默认排序为字母顺序。 |
USE_ANNOTATIONS | 决定是否使用注释进行配置。如果启用,将使用配置的AnnotationIntrospector。 |
USE_BASE_TYPE_AS_DEFAULT_IMPL | 决定在没有显式默认类的情况下,是否使用多态值的声明基类型作为默认实现。如果启用,将使用声明基类型作为默认实现。 |
USE_GETTERS_AS_SETTERS | 决定是否可以将常规"getter"方法用作集合和映射的变更器。如果启用,getter方法可以用作集合和映射的变更器。 |
USE_STATIC_TYPING | 决定序列化时是否使用实际的动态运行时类型或声明的静态类型。如果启用,将使用声明的静态类型进行序列化。 |
USE_STD_BEAN_NAMING | 决定是否强制使用标准的Bean名称内省。如果启用,将使用标准的Bean名称内省。 |
USE_WRAPPER_NAME_AS_PROPERTY_NAME | 决定是否使用包装器名称覆盖属性名称。如果启用,所有具有非空包装器名称的属性将使用该包装器名称。 |
JsonGenerator.Feature各枚举项的作用
枚举项 | 作用 |
---|---|
AUTO_CLOSE_JSON_CONTENT | 确定在生成器关闭时,是否自动关闭未匹配的JSON数组或对象。 |
AUTO_CLOSE_TARGET | 确定生成器是否会自动关闭底层的输出目标。 |
ESCAPE_NON_ASCII | 指定是否需要对超出7位ASCII范围的所有字符进行转义。 |
FLUSH_PASSED_TO_STREAM | 指定调用flush时是否会导致底层的OutputStream或Writer也进行flush。 |
IGNORE_UNKNOWN | 确定在底层数据格式需要所有属性的定义时,是否忽略未知属性。 |
QUOTE_FIELD_NAMES | 确定JSON对象字段名是否使用双引号。 |
QUOTE_NON_NUMERIC_NUMBERS | 确定是否将非数字的浮点值作为字符串输出。 |
STRICT_DUPLICATE_DETECTION | 确定生成器是否会显式检查是否有重复的JSON对象字段名。 |
WRITE_BIGDECIMAL_AS_PLAIN | 确定是否使用BigDecimal.toPlainString()方法序列化BigDecimal条目。 |
WRITE_NUMBERS_AS_STRINGS | 强制所有Java数字作为字符串写入。 |
JsonParser.Feature各枚举项的作用
枚举项 | 作用 |
---|---|
ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER | 允许反斜杠转义任何字符。 |
ALLOW_COMMENTS | 允许在JSON内容中包含注释。 |
ALLOW_MISSING_VALUES | 允许在JSON数组中缺少值。 |
ALLOW_NON_NUMERIC_NUMBERS | 允许非数字的数值(如NaN、Infinity)。 |
ALLOW_NUMERIC_LEADING_ZEROS | 允许数值以零开头。 |
ALLOW_SINGLE_QUOTES | 允许使用单引号包围字符串。 |
ALLOW_TRAILING_COMMA | 允许在JSON对象或数组的末尾有逗号。 |
ALLOW_UNQUOTED_CONTROL_CHARS | 允许在JSON字符串中包含未转义的控制字符。 |
ALLOW_UNQUOTED_FIELD_NAMES | 允许在JSON对象中使用未加引号的字段名。 |
ALLOW_YAML_COMMENTS | 允许使用YAML风格的注释。 |
AUTO_CLOSE_SOURCE | 在解析完成后自动关闭输入源。 |
IGNORE_UNDEFINED | 忽略未定义的JSON字段。 |
STRICT_DUPLICATE_DETECTION | 严格检测并报告重复的JSON对象字段。 |
SerializationFeature各枚举项的作用
枚举项 | 作用 |
---|---|
WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS | 决定是否将字符数组序列化为JSON数组。如果启用,字符数组将被序列化为JSON数组;如果禁用,字符数组将被序列化为字符串。 |
WRITE_DATE_KEYS_AS_TIMESTAMPS | 决定是否将日期类型的键序列化为时间戳。如果启用,日期类型的键将被序列化为时间戳;如果禁用,日期类型的键将被序列化为字符串。 |
WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS | 决定是否将日期时间戳序列化为纳秒。如果启用,日期时间戳将被序列化为纳秒;如果禁用,日期时间戳将被序列化为毫秒。 |
WRITE_DATES_AS_TIMESTAMPS | 决定是否将日期序列化为时间戳。如果启用,日期将被序列化为时间戳;如果禁用,日期将被序列化为字符串。 |
WRITE_DATES_WITH_CONTEXT_TIME_ZONE | 决定是否使用上下文时区序列化日期。如果启用,日期将使用上下文时区序列化;如果禁用,日期将使用默认时区序列化。 |
WRITE_EMPTY_JSON_ARRAYS | 决定是否序列化空的JSON数组。如果启用,空的JSON数组将被序列化;如果禁用,空的JSON数组将被忽略。 |
WRITE_ENUMS_USING_INDEX | 决定是否使用枚举的索引值进行序列化。如果启用,枚举将被序列化为索引值;如果禁用,枚举将被序列化为名称。 |
WRITE_ENUMS_USING_TO_STRING | 决定是否使用枚举的toString()方法进行序列化。如果启用,枚举将被序列化为toString()方法的返回值;如果禁用,枚举将被序列化为名称。 |
WRITE_NULL_MAP_VALUES | 决定是否序列化Map中的null值。如果启用,Map中的null值将被序列化;如果禁用,Map中的null值将被忽略。 |
WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED | 决定是否将单元素数组序列化为非数组。如果启用,单元素数组将被序列化为非数组;如果禁用,单元素数组将被序列化为数组。 |
WRAP_EXCEPTIONS | 决定是否捕获并包装异常以添加额外的上下文信息。如果启用,大多数异常将被捕获并重新抛出;如果禁用,异常将按原样传递。 |
WRAP_ROOT_VALUE | 决定是否将根值包装在一个单独的JSON对象中。如果启用,根值将被包装在一个单独的JSON对象中;如果禁用,根值将直接序列化。 |
DeserializationFeature各枚举项的作用
枚举项 | 作用 |
---|---|
ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT | 决定是否允许将空数组 ([]) 绑定为 null。默认情况下禁用,意味着不允许。 |
ACCEPT_EMPTY_STRING_AS_NULL_OBJECT | 决定是否允许将空字符串 ("") 绑定为 null。默认情况下禁用,意味着不允许。 |
ACCEPT_FLOAT_AS_INT | 决定是否允许将 JSON 浮点数强制转换为整数。默认情况下启用,意味着允许。 |
ACCEPT_SINGLE_VALUE_AS_ARRAY | 决定是否允许将非数组值反序列化为 Java 集合类型。默认情况下禁用,意味着不允许。 |
ADJUST_DATES_TO_CONTEXT_TIME_ZONE | 决定是否使用上下文提供的时区调整日期/时间值。默认情况下启用,意味着会使用上下文时区。 |
EAGER_DESERIALIZER_FETCH | 决定是否尝试提前获取必要的反序列化器。默认情况下启用,意味着会提前获取。 |
FAIL_ON_IGNORED_PROPERTIES | 决定在遇到被标记为忽略的属性时是否抛出异常。默认情况下禁用,意味着不会抛出异常。 |
FAIL_ON_INVALID_SUBTYPE | 决定在遇到无效的多态类型信息时是否抛出异常。默认情况下启用,意味着会抛出异常。 |
FAIL_ON_MISSING_CREATOR_PROPERTIES | 决定在缺少创建者属性时是否抛出异常。默认情况下禁用,意味着不会抛出异常。 |
FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY | 决定在缺少外部类型 ID 属性时是否抛出异常。默认情况下启用,意味着会抛出异常。 |
FAIL_ON_NULL_CREATOR_PROPERTIES | 决定在创建者属性为 null 时是否抛出异常。默认情况下禁用,意味着不会抛出异常。 |
FAIL_ON_NULL_FOR_PRIMITIVES | 决定在反序列化为 Java 基本类型时遇到 JSON null 是否抛出异常。默认情况下禁用,意味着将使用默认值(如 0)。 |
FAIL_ON_NUMBERS_FOR_ENUMS | 决定是否允许使用 JSON 整数值反序列化为 Java 枚举值。默认情况下禁用,意味着允许使用整数值。 |
FAIL_ON_READING_DUP_TREE_KEY | 决定在读取 JSON 树时遇到重复键是否抛出异常。默认情况下禁用,意味着不会抛出异常。 |
FAIL_ON_TRAILING_TOKENS | 决定在反序列化根值后是否检查剩余的 JSON 令牌。默认情况下禁用,意味着不会进行检查。 |
FAIL_ON_UNKNOWN_PROPERTIES | 决定在遇到未知属性时是否抛出异常。默认情况下启用,意味着会抛出 `JsonMappingException`。 |
FAIL_ON_UNRESOLVED_OBJECT_IDS | 决定在遇到未解析的对象 ID 时是否抛出异常。默认情况下启用,意味着会抛出异常。 |
READ_DATE_TIMESTAMPS_AS_NANOSECONDS | 决定是否使用纳秒时间戳反序列化日期/时间值。默认情况下启用,意味着使用纳秒时间戳。 |
READ_ENUMS_USING_TO_STRING | 决定是否使用 `Enum.toString()` 方法反序列化枚举值。默认情况下禁用,意味着使用 `Enum.name()` 方法。 |
READ_UNKNOWN_ENUM_VALUES_AS_NULL | 决定是否将未知的枚举值解析为 null。默认情况下禁用,意味着会抛出异常。 |
READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE | 决定是否使用预定义的默认值解析未知的枚举值。默认情况下禁用,意味着会抛出异常。 |
UNWRAP_ROOT_VALUE | 决定是否允许解包根级 JSON 值以匹配序列化时的设置。默认情况下禁用,意味着不允许。 |
UNWRAP_SINGLE_VALUE_ARRAYS | 决定是否允许将单值数组反序列化为对应的值类型。默认情况下禁用,意味着不允许。 |
USE_BIG_DECIMAL_FOR_FLOATS | 决定是否将 JSON 浮点数反序列化为 `BigDecimal`。默认情况下禁用,意味着浮点数将反序列化为 `Double`。 |
USE_BIG_INTEGER_FOR_INTS | 决定是否将 JSON 整数反序列化为 `BigInteger`。默认情况下禁用,意味着整数将反序列化为最小的可用类型(`Integer`、`Long` 或 `BigInteger`)。 |
USE_JAVA_ARRAY_FOR_JSON_ARRAY | 决定是否将 JSON 数组映射为 `Object[]` 或 `List`。默认情况下禁用,意味着 JSON 数组将映射为 `List`。 |
USE_LONG_FOR_INTS | 决定是否将小的 JSON 整数(适合 32 位整数)反序列化为 `Long`。默认情况下禁用,意味着这些整数将反序列化为 `Integer`。 |
WRAP_EXCEPTIONS | 决定是否捕获并包装异常以添加位置信息。默认情况下启用,意味着会捕获并包装异常。 |