如何发送数组值作为一个放心请求的密钥



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

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

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

实际

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

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

我正在使用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正文。提前谢谢。

Map更改为:

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

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

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

相关内容

  • 没有找到相关文章

最新更新