如何在请求后传递数组对象

时间:2020-06-22 09:21:09

标签: 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);
        }

有人可以帮我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

可以通过几种方法来生成此有效负载,即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");
    }
}));