【问题标题】:How to send array value for one the key for rest assured request如何为放心请求的一个键发送数组值
【发布时间】:2020-08-27 08:04:46
【问题描述】:

下面是预期的请求,它应该到达系统但在发送它时数组变成了字符串?

预期 { "class": "A", "subUsecases": [ "string1", "String2" ] }

为了生成上面的内容,我正在创建 Array 对象并发送请求,但在放心请求中结果是这样的。

实际

{"Class": "A", "subClass": "[\"String1\",\"String2\"]"}

由于上述实际结果,api 将其视为子类的字符串,而不是将其视为数组。但是代码希望它是子类的数组。

我正在使用 hasmap 来创建上述内容。像这样

@Test
    public void mm(){
        HashMap<String,String> queryParam = new HashMap<>();
        queryParam.put("CLASS","A");
        queryParam.put("subClass", arrayMethod("String1","String2"));
    }

    public String arrayMethod(String s1, String s2){
        org.json.simple.JSONArray array = new JSONArray();

        array.add(s1);
        array.add(s2);

        return array.toJSONString();
    }

queryParam 将作为 jsonbody。

现在如何发送预期的 json 正文而不是实际的 json 正文。 提前致谢。

【问题讨论】:

  • 最好使用类作为结果
  • 您介意详细说明吗?

标签: java arrays json rest-assured rest-assured-jsonpath


【解决方案1】:

Map 更改为:

HashMap<String, Object> queryParam = new HashMap<>();

并创建一个常规列表或数组,而不是使用JSONArray 对象。 array.toJSONString() 已经生成了 JSON 字符串,您将其作为另一个对象的值。

queryParam.put("subClass", Arrays.asList("String1", "String2"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2015-06-05
    • 1970-01-01
    • 2012-01-22
    • 2023-04-05
    • 1970-01-01
    • 2021-10-26
    相关资源
    最近更新 更多