POST 嵌套数组失败(放心)

POST fails( rest-assured) with nested arrays

我在 POST 的有效负载中嵌套了数组。尝试通过放心 运行 POST 但它抛出 400 我尝试了 hashmap 和对象映射器但无法使其工作。

{
    "actions": [
        {
            
            "n": "O",
            "r": "o",
            "value": {
                "value": true
            }
        }
    ],
    "condition": {
        "conditions": [
            {
                
                "i": "o",
                "n": "O",
                "operand": "true",
                "operator": "=",
                "property": "value",
                "rt": "o",
                "type": "boolean"
            }
        ],
        
    },
    "currentStatus": "Enabled",
    
   
}

您可以按如下方式创建请求正文;

Map<String, Object> requestBody = new HashMap<>();

// Create actions object array
Map<String, Object> valueMap = new HashMap<>();
valueMap.put("value",true);

Map<String, Object> actionsObject = new HashMap<>();
actionsObject.put("n", "O");
actionsObject.put("r", "o");
actionsObject.put("value", valueMap);

Object[] actionsArray = new Object[1];

actionsArray[0] = actionsObject;

requestBody.put("actions", actionsArray);

// Create condition object
Map<String, Object> conditionsObject = new HashMap<>();
conditionsObject.put("i", "o");
conditionsObject.put("n", "O");
conditionsObject.put("operand", "true");
conditionsObject.put("operator", "=");
conditionsObject.put("property", "value");
conditionsObject.put("rt", "o");
conditionsObject.put("type", "boolean");

Object[] conditionsArray = new Object[1];
conditionsArray[0] = conditionsObject;

Map<String, Object> conditionMainObject = new HashMap<>();
conditionMainObject.put("condition", conditionsArray);

requestBody.put("conditions", conditionMainObject);

// add currentStatus
requestBody.put("currentStatus", "Enabled");

JSONObject request = new JSONObject(requestBody);

然后使用request中的POST调用;

    Response response = RestAssured
            .given(RequestSpec).auth()
            .body(request)
            .post("?id=" + Id);
    int statusCode = response.getStatusCode();
    System.out.println(statusCode);
    assertThat(statusCode, equalTo(200));

需要导入;

import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;