首页 > 其他分享 >jackson之枚举项的作用

jackson之枚举项的作用

时间:2024-09-26 15:45:03浏览次数:7  
标签:决定 jackson 启用 是否 JSON 默认 枚举 序列化 作用

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 决定是否捕获并包装异常以添加位置信息。默认情况下启用,意味着会捕获并包装异常。

标签:决定,jackson,启用,是否,JSON,默认,枚举,序列化,作用
From: https://www.cnblogs.com/auv2009/p/18433578

相关文章

  • MapperFeature各枚举项的作用
    枚举项作用ACCEPT_CASE_INSENSITIVE_ENUMS决定枚举反序列化是否忽略大小写。如果启用,枚举反序列化将忽略大小写。ACCEPT_CASE_INSENSITIVE_PROPERTIES决定属性名称反序列化是否忽略大小写。如果启用,属性名称反序列化将忽略大小写。ACCEPT_CASE_INSENSITIVE_VALUES......
  • JsonParser.Feature各枚举项的作用
    枚举项作用ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER允许反斜杠转义任何字符。ALLOW_COMMENTS允许在JSON内容中包含注释。ALLOW_MISSING_VALUES允许在JSON数组中缺少值。ALLOW_NON_NUMERIC_NUMBERS允许非数字的数值(如NaN、Infinity)。ALLOW_NUMERIC_LEADING_Z......
  • DeserializationFeature各枚举项的作用
    枚举项作用ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT决定是否允许将空数组([])绑定为null。默认情况下禁用,意味着不允许。ACCEPT_EMPTY_STRING_AS_NULL_OBJECT决定是否允许将空字符串("")绑定为null。默认情况下禁用,意味着不允许。ACCEPT_FLOAT_AS_INT决定是否允许将......
  • SerializationFeature各枚举项的作用
    枚举项作用WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS决定是否将字符数组序列化为JSON数组。如果启用,字符数组将被序列化为JSON数组;如果禁用,字符数组将被序列化为字符串。WRITE_DATE_KEYS_AS_TIMESTAMPS决定是否将日期类型的键序列化为时间戳。如果启用,日期类型的键将被序列化......
  • READ_ONCE/WRITE_ONCE/ACCESS_ONCE和smp_store_release/smp_load_acquire作用
    READ_ONCE,WRITE_ONCE和ACCESS_ONCE宏在linux内核中出现的频率极高。那么这三个宏到底起了什么样的作用呢?smp_store_release/smp_load_acquire又如何呢?1、宏定义我们先看下READ_ONCE和WRITE_ONCE的宏定义:#defineREAD_ONCE(x)\ ({union{typeof(x)__val;char__......
  • 结构体、位段、联合体、枚举
    这篇文章是对结构体、位段、联合体以及枚举四种自定义类型的学习分享,文章有些长但还是希望你能够耐心看完,我相信你一定能够在这里加深对这部分知识的理解~那我们废话不多说,直接开始吧!1.结构体1.1结构体的含义与用途与我们所熟知的整型int、浮点型float、高精度浮点型d......
  • 标准化和归一化的定义、公式、作用、示例、区别
    标准化(Standardization)和**归一化(Normalization)**是数据预处理中常用的两种技术,目的是调整数据的尺度,使得不同特征的数据可以在同一水平上进行比较或处理。这两种方法在形式和用途上有所不同,下面分别进行介绍并举例说明。1.标准化(Standardization)定义:标准化是通过对......
  • 10 函数作用域
    py文件:全局作用域函数:局部作用域a=1defs1():x1=666print(x1)print(a)print(b)b=2print(a)s1()a=88888defs2():print(a,b)#此时a为8888s1()#此时s1中的a为:8888s2()总结一个函数是一个作用域作用域中查找数据规则:优先在自......
  • 矿山井下/传送带堆料检测AI算法的检测作用、工作原理及其解决方案
    传送带堆料分为两种情况,一种是传送带的井下堆料检测AI算法,一种是传送带上面的堆料检测AI算法,传送带井下堆料检测AI算法是在带式输送机的漏煤下方井下安装摄像仪,通过视频分析检测井下堆煤情况,当洒煤堆积到一定程度后,智慧矿山版ai盒子自动产生报警,并语音通知值班人员,也可通过前端音箱......
  • 枚举
    枚举其实就是为了规定好对象实例有具体的个数,不允许再额外创建此对象实例,可以通过自定义枚举和Java中提供的enum关键字来完成。自定义枚举:1.把构造器私有化,在类内部完成对对象实例的创建;(注意要用publicstaticfinal来修饰对象实例,用static的原因是,因为不能创建对象实例,所以调用......