下面是预期的请求,它应该到达系统,但在发送时数组会变成字符串?
预期{ "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"));