QDAC 4.0 序列化注解说明

  • NameFormat (AFormat): 序列化时,字段名的输出格式,AFormat 可取以下值之一:
    • Normal: 正常匹配(默认),字段名要与数据源名称一致(AgeKind->AgeKind)
    • LowerCamel : 小驼峰匹配,字段名与源的小驼峰命名反转后的值一致(ageKind->AgeKind/FAgeKind)
    • UpperCamel : 大驼峰匹配,字段名与源的大驼峰命名反转后的值一致(AgeKind->AgeKind/FAgeKind)
    • Underline : 下划线匹配,字段名被删除下划线(age_kind->AgeKind/FAgeKind)
  • Exclude : 序列化时,排除掉指定的项目
  • ExcludeFields(AFields,ADelimiter) : 序列化时,排除掉指定的字段列表中的字段,如 [ExcludeFields(‘aaa,bbb’)],ADelimiter 指定字段列表分隔符,如果不指定则为半角的逗号/分号/空格/Tab之一
    • Exclude 只排队当前注解关联的字段
    • ExcludeFields 用在复合类型定义上,算是一个语法糖,直接排除掉多个字段,相当于在这多个字段都都加入了 Exclude 注解
  • IncludeProps : 序列化时,包含属性信息
  • EnumAsInt : 序列化时,枚举值不转换为字符串,输出为整数
  • DateTimeFormat (AFormat,AFormatText) : 日期时间类型格式,AFormat 可取以下值之一:
    • AutoDetect : 自动检测,如果是日期时间值,则输出为 yyyy-mm-dd hh:nn:ss 格式,如果仅日期值,则输出为 yyyy-mm-dd,如果仅时间,则输出 hh:nn:ss
    • DateTimeString : 日期时间格式,如果不指定 AFormatText 字符串,则默认为 yyyy-mm-dd hh:nn:ss 格式
    • DateString : 日期格式,如果不指定 AFormatText 字符串,则默认为 yyyy-mm-dd 格式
    • TimeString : 时间格式,如果不指定 AFormatText 字符串,则默认为 hh:nn:ss 格式
    • UnixTimeStamp : 秒级 Unix 时间戳,AFormatText 被忽略
    • UnixTimeStampMs : 毫秒级 Unix 时间戳,AFormatText 被忽略
  • FloatFormat(AFormatText) : 浮点数类型格式,AFormatText 对应 FormatFloat 中的格式要求
    • 注意 : 如果格式化后的字符串无法反转为一个浮点数,JSON 会输出成字符串,如 1.23 格式化后¥1.23, 则输出为 “¥1.23“,实际使用中应注意兼容的问题
  • Prefix(APrefix) : 序列化时,要移除的前缀,如指定 Prefix(‘os’) 而值为 osPay 则序列化结果为 Pay
  • Alias(Aliases,ADelimiter) : 反序列化时,指定兼容的历史别名列表,如 orderId JSON中被写为 ordId,我们可以设置 Alias(‘ordId’) 使反序列化自动支持 orderId/ordId 两种值,中间,ADelimiter 指定字段列表分隔符,如果不指定则为半角的逗号/分号/空格/Tab之一
  • Path(APath) : 反序列化时,用于兼容历史路径,如原来是 a.b.c, 当前是 a.c ,为了能正常序列化历史数据,加入 Path 进行兼容处理。
  • EnumMap(AKey,AValue) : 反序列化时,用于将枚举值和字符串之间建立一个映射关系,以解决兼容问题

滚动至顶部