当前位置: 首页 > 知识库问答 >
问题:

使用序列化验证数据类型是否正确

乐正秦斩
2023-03-14

下面提供了一个POJO,

@Setter
@Getter
public class OrderDto extends BaseDto {

    @JsonProperty( "products" )
    private final List<String> products;

    @JsonProperty( "basket_items" )
    private final List<BasketItemDto> basketItems;

    @JsonProperty( "timestamp" )
    @JsonDeserialize( using = JavaOffsetDateTimeDeserializer.class )
    @JsonSerialize( using = JavaOffsetDateTimeSerializer.class )
    private OffsetDateTime timestamp;

    @JsonProperty( "amount" )
    private BigDecimal amount;

    @JsonProperty( "shop_id" )
    private Integer shopId;

    ..........................

}

共有1个答案

怀洛华
2023-03-14

我想测试时间戳字段是否是OffsetDateTime数据类型。

当然可以。这里有点猜测,但我认为你想要/打算做的是:

  • 编写一个单元测试,以显示POJO/DD中的注释按预期工作...
  • 解析某些JSON字符串时
    null
  • 在Java中执行new()并手动填充此类dto的字段并序列化为JSON时,可以检查字符串是否与预期的一样
  • 或者,正如前面所说的,相反:您可以硬编码一个JSON字符串,对其进行反序列化,然后验证/断言您所期望的属性(基于您对传入JSON字符串的了解)是否真的显示在您的DTO中。

最后:如果您没有正确的“输入”JSON字符串,危险但有效的替代方案是:首先编写将已知对象序列化为JSON字符串的测试用例。然后反序列化该字符串,并确保反序列化的dto与您序列化的dto匹配。

 类似资料:
  • 我正在尝试使用自定义Bean验证来验证应该大于零的数值,但问题是使用如下单个自定义验证器来验证任何数值:整数、浮点数、双......: 整数int; @PositiveNumber双倍双; 这可能吗?

  • 我用Jackson编写了自己的序列化程序。它接受一个变量或类,并返回任何简单类型的值。 示例:serialize(new MyClass(2.0))将返回一个值为 2.0 的双精度值,其中 MyClass 如下所示: 因此,为了获得正确的值,我需要设置@JsonValue,但是,当我序列化一个没有@JsonValue注释的对象(例如UUID)时,它会返回预期的UUID字符串。 创建我自己的类没有@

  • 我在Android应用程序中实现Json反序列化时遇到了一些问题(带有Gson库)

  • 问题内容: 使用SQLAlchemy ORM,我要确保值是其列的正确类型。 例如,假设我有一个Integer列。我尝试插入值“ hello”,它不是有效的整数。SQLAlchemy将允许我执行此操作。仅在稍后执行时,它才会引发异常:。 我要添加成批的记录,出于性能原因,我不想在每笔记录之后提交。 那么我该如何: 我尽快提出例外 或者,在将我添加的值添加到批处理 之前 ,确保将其转换为目标Colum

  • 本文向大家介绍PHP验证信用卡卡号是否正确函数,包括了PHP验证信用卡卡号是否正确函数的使用技巧和注意事项,需要的朋友参考一下 可以使用以下PHP函数,验证一个卡号是否是信用卡: