繁体   English   中英

如何使用简单的json在请求正文下传递json数组

[英]How to pass json array under request body using simply json

我正在使用下面的代码来自动化 REST API。 请帮助我了解如何将整个 json 数据放入下面提到的示例数据中,因为输入有数组,而到目前为止我使用的是没有数组的平面 json

Method Dummy()
{
    RestAssured.baseURI ="http://mydummyURL";
    RequestSpecification request = RestAssured.given();
    JSONObject requestParams = new JSONObject();
    requestParams.put("id", "THAILAND"); //Issue is with this code 
    request.header("Content-Type", "application/json");
    request.body(requestParams.toJSONString());
    Response response = request.post("/EndPoint");
}

json 主体看起来像这样

{
    "tag1": "value1",
    "tag2": "value2",
    "tag3": {
        "tag31": "value31",
        "tag32": "value32"
    },
    "tag4": [{
            "domainName": "ABC",
            "domainId": "123ABC123",
            "domainGUID": "TestMyDomain"
        },
        {
            "domainName": "XYZ",
            "domainId": "123XYZ123",
            "domainGUID": "TestMyDomain"
        }
    ]
}
ArrayList<JSONObject> array= new ArrayList<JSONObject>();
    JSONObject json= new JSONObject();

    try {
        json.put("key", "value");// your json
    } catch (JSONException e) {
        e.printStackTrace();
    }
    array.add(json);
    String printjsonarray= array.toString();// pass this into the request 
    ObjectMapper mapper = new ObjectMapper();

//为数组中的变量创建一个Java类。

JsonArrayData tag4paramVal1 = new JsonArrayData("ABC","123ABC123","TestMyDomain");
JsonArrayData tag4paramVal2 = new JsonArrayData("XYZ","123XYZ123","TestMyDomain");

    Object[] tag4ValArray = {tag4paramVal1,tag4paramVal2};

    String reqJson = null;
    List<String> tag4Data = new ArrayList<String>();

    for(Object obj:tag4ValArray){

        reqJson = mapper.writeValueAsString(obj);
        System.out.println(reqJson);
        tag4Data.add(reqJson);

    }

    System.out.println(tag4Data);

    HashMap<String,List<String>> finalReq = new HashMap<String,List<String>>();
    finalReq.put("\"tag4\":",tag4Data);


    String finalreqString = finalReq.toString();
    System.out.println(finalreqString);

    finalreqString = finalreqString.replace('=', ' ');
    System.out.println(finalreqString);

//使用上面的String作为参数来POST请求。 您将获得所需的 JSON 数组。

//JsonArrayData类代码

公共类 JsonArrayData {

String domainName;
String domainId;
String domainGUID;

public JsonArrayData(String domainName,String domainId,String domainGUID){

    this.domainName = domainName;
    this.domainId = domainId;
    this.domainGUID = domainGUID;

}

public String getDomainName() {
    return domainName;
}

public void setDomainName(String domainName) {
    this.domainName = domainName;
}

public String getDomainId() {
    return domainId;
}

public void setDomainId(String domainId) {
    this.domainId = domainId;
}

public String getDomainGUID() {
    return domainGUID;
}

public void setDomainGUID(String domainGUID) {
    this.domainGUID = domainGUID;
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM