【问题标题】:Passing an empty JSON array as a parameter to an @JsonProperty annotated method将空 JSON 数组作为参数传递给 @JsonProperty 注释方法
【发布时间】:2020-10-24 07:19:24
【问题描述】:

我正在尝试在我的负载中传递一个空数组值以进行 Rest Assured 测试,以便它包含:

{
  "areaCode": []
}

我有一个代表数据对象的 POJO:

@Data
public class AreaDetails {

//declare fields here
@JsonProperty("areaCode")
private JsonArray areaCode;

}

然后尝试在我的测试中设置值:

@Test
public void updateAreaCodes()  {

    a = new AreaCodes();

    //set other fields
    a.setDealerOptions(<PARAM>);

我不清楚在这里传递什么作为参数,或者我是否应该将该字段声明为 JsonArray

【问题讨论】:

    标签: json jackson rest-assured


    【解决方案1】:

    POJO:

    @Data
    public static class Example {
    
        @JsonProperty("areaCode")
        private List<Object> areaCode = null;
    
    }
    

    测试:

        Example e = new Example();
        e.setAreaCode(new JSONArray());
    
        String abc = new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(e);
        System.out.println(abc);
    

    【讨论】:

    • 再次感谢您的帮助。我的班级路径中似乎只有 Gson 的 JsonArray 不起作用。我不断收到 com.fasterxml.jackson.databind.JsonMappingException 也许我对 Gson 和 Jackson 感到困惑
    • 我用过json-simple
    • 啊,谢谢。是的,但会产生一个空数组,中间有空格。请求失败,所以我想知道这是问题还是红鲱鱼
    • 我也尝试了其他几种方法,但最终得到了相同的结果。当我尝试获取数组的大小时,它返回 0,这与预期的一样,因此很有说服力
    • 好的,谢谢,这是一个 PATCH 请求,其他是 POSTS - 我认为还有其他问题
    猜你喜欢
    • 2020-03-16
    • 2015-04-09
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 2018-12-11
    • 2015-02-12
    相关资源
    最近更新 更多