我有一个这样的 json 请求:
{
"clientApp":"PROD",
"clientTransactionId":"12345443432",
"messageList":[
"SUCCESS",
"FAILURE",
"BLOCKED"
]
}
我尝试创建这样的 json 请求:
String messageList = "\SUCCESS\","\FAILURE\","\BLOCKED\";
requestParams.put("clientApp", "PROD");
requestParams.put("clientTransactionId", "12345443432");
requestParams.put("messageList", "["+ messageList + "]");
但它会像这样创建请求:
{
"messageList": "[\"SUCCESS\",\"FAILURE\",\"BLOCKED\"]",
"clientApp": "PROD",
"clientTransactionId": "12345443432"
}
如果我删除“”,它会给出定义字符串的错误。我如何创建这个帖子请求,有什么想法吗?
答案 0 :(得分:0)
messageList 是一个 JSON 数组,所以你必须做这样的事情
String[] messageList = {"SUCCESS","FAILURE","BLOCKED"};
(...)
requestParams.put("messageList", messageList );
当然,我假设 requestParams 将以某种方式转换为 JSON 字符串(根据您提供的代码不清楚)
答案 1 :(得分:0)
我使用了数组而不是字符串。
JSONArray array = new JSONArray();
array.add("SUCCESS");
array.add("FAILURE");
array.add("BLOCKED");
requestParams.put("messageList", array);
答案 2 :(得分:0)
我只想贡献一种方式来做。我假设您在这种情况下使用的是 Map。
Map<String, Object> payload = new HashMap<>();
payload.put("clientApp", "PROD");
payload.put("clientTransactionId", "12345443432");
payload.put("messageList", Arrays.asList("SUCCESS", "FAILURE", "BLOCKED"));
given().contentType(ContentType.JSON).log().all()
.body(payload)
.post("https://localhost");
结果如下: