rest-assured - 如何在发布请求中传递数组对象
问题描述
我是新手,可以放心并尝试在发布请求中传递以下正文。
JSON有效负载:
{
"apikey": "****",
"collectortoken": "***",
"medium": "*",
"uniquekey": "tcode",
"contacts": [{
"email": "Sijo6956899@yopmail.com",
"tcode": "2597566"
},
{
"tcode": "9990"
}
]
}
我什至尝试过以下代码:
JSONObject obj = new JSONObject();
obj.put("apikey", "****");
obj.put("collectortoken", "***");
obj.put("medium", "2");
obj.put("uniquekey", "tcode");
obj.put("contacts", Arrays.asList(new LinkedHashMap<String, String>() {
{
put("email",name);
put("tcode",tcode);
}
{
put("tcode",tcode);
}
有人可以帮我解决这个问题。
谢谢
解决方案
有几种方法可以生成此有效负载,JSONObject / Map / Serialization
使用 JSONObject :
导入 org.json.simple.JSONArray;
导入 org.json.simple.JSONObject;
JSONObject jo = new JSONObject();
jo.put("email", "Sijo6956899@yopmail.com");
jo.put("tcode", "2597566");
JSONObject jo1 = new JSONObject();
jo1.put("tcode", "9990");
JSONArray ja = new JSONArray();
ja.add(jo);
ja.add(jo1);
JSONObject mainObj = new JSONObject();
mainObj.put("apikey", "123");
mainObj.put("collectortoken", "456");
mainObj.put("medium", "2");
mainObj.put("uniquekey", "tcode");
mainObj.put("contacts", ja);
使用地图:
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
map.put("apikey", "124");
map.put("collectortoken", "456");
map.put("medium", "789");
map.put("uniquekey", "111");
map.put("contacts", Arrays.asList(new LinkedHashMap<String, Object>() {
{
put("email", "Sijo6956899@yopmail.com");
put("tcode", "2597566");
}
}, new LinkedHashMap<String, Object>() {
{
put("tcode", "9990");
}
}));