Как передать вложенный запрос JSON в качестве аргументов в JAVA?Ниже я опубликовал запрос JSON POST, а также разместил классы JSON в POJO (всего их три), затем я перечислил класс определения шага Cucumber - здесь я хочу передатьJSON Опубликовать запрос в качестве аргумента и нужна помощь.
Это мой запрос JSON POST:
{
"sp_id": "7987",
"npac_region": "midwest_region",
"PortInRequest": {
"svb_new_sp": "7987",
"sv_old_sp": "7661",
"svb_new_sp_due_date": "2019-09-20T00:00:00Z",
"svb_lrn": "4782590986",
"sv_lnp_type": "inter_provider",
"sv_porting_to_original_switch": "false",
"sv_new_sp_medium_timer_indicator": "false",
"default_gtt": "true",
"SVInfo": {
"sv_tn": "8104000095"
}
}
}
Использование этого сайта - http://pojo.sodhanalibrary.com/
Я преобразовал свой JSONв POJO, преобразованный POJO имеет три класса -
Класс # 1 - MyPojo
public class MyPojo
{
private String sp_id;
private PortInRequest PortInRequest;
private String npac_region;
public String getSp_id ()
{
return sp_id;
}
public void setSp_id (String sp_id)
{
this.sp_id = sp_id;
}
public PortInRequest getPortInRequest ()
{
return PortInRequest;
}
public void setPortInRequest (PortInRequest PortInRequest)
{
this.PortInRequest = PortInRequest;
}
public String getNpac_region ()
{
return npac_region;
}
public void setNpac_region (String npac_region)
{
this.npac_region = npac_region;
}
@Override
public String toString()
{
return "ClassPojo [sp_id = "+sp_id+", PortInRequest = "+PortInRequest+", npac_region = "+npac_region+"]";
}
}
Класс # 2 PostInRequest.JAVA
public class PortInRequest
{
private String default_gtt;
private SVInfo SVInfo;
private String sv_old_sp;
private String svb_lrn;
private String svb_new_sp;
private String sv_new_sp_medium_timer_indicator;
private String sv_porting_to_original_switch;
private String svb_new_sp_due_date;
private String sv_lnp_type;
public String getDefault_gtt ()
{
return default_gtt;
}
public void setDefault_gtt (String default_gtt)
{
this.default_gtt = default_gtt;
}
public SVInfo getSVInfo ()
{
return SVInfo;
}
public void setSVInfo (SVInfo SVInfo)
{
this.SVInfo = SVInfo;
}
//getters and setters
public String getSv_old_sp ()
{
return sv_old_sp;//Nothing required here
}
public void setSv_old_sp (String sv_old_sp)
{
this.sv_old_sp = sv_old_sp;
}
public String getSvb_lrn ()
{
return svb_lrn;
}
public void setSvb_lrn (String svb_lrn)
{
this.svb_lrn = svb_lrn;
}
public String getSvb_new_sp ()
{
return svb_new_sp;
}
public void setSvb_new_sp (String svb_new_sp)
{
this.svb_new_sp = svb_new_sp;
}
public String getSv_new_sp_medium_timer_indicator ()
{
return sv_new_sp_medium_timer_indicator;
}
public void setSv_new_sp_medium_timer_indicator (String sv_new_sp_medium_timer_indicator)
{
this.sv_new_sp_medium_timer_indicator = sv_new_sp_medium_timer_indicator;
}
public String getSv_porting_to_original_switch ()
{
return sv_porting_to_original_switch;
}
public void setSv_porting_to_original_switch (String sv_porting_to_original_switch)
{
this.sv_porting_to_original_switch = sv_porting_to_original_switch;
}
public String getSvb_new_sp_due_date ()
{
return svb_new_sp_due_date;
}
public void setSvb_new_sp_due_date (String svb_new_sp_due_date)
{
this.svb_new_sp_due_date = svb_new_sp_due_date;
}
public String getSv_lnp_type ()
{
return sv_lnp_type;
}
public void setSv_lnp_type (String sv_lnp_type)
{
this.sv_lnp_type = sv_lnp_type;
}
@Override
public String toString()
{
return "ClassPojo [default_gtt = "+default_gtt+", SVInfo = "+SVInfo+", sv_old_sp = "+sv_old_sp+", svb_lrn = "+svb_lrn+", svb_new_sp = "+svb_new_sp+", sv_new_sp_medium_timer_indicator = "+sv_new_sp_medium_timer_indicator+", sv_porting_to_original_switch = "+sv_porting_to_original_switch+", svb_new_sp_due_date = "+svb_new_sp_due_date+", sv_lnp_type = "+sv_lnp_type+"]";
}
}
Класс № 3 SVInfo.java
public class SVInfo
{
private String sv_tn;
public String getSv_tn ()
{
return sv_tn;
}
public void setSv_tn (String sv_tn)
{
this.sv_tn = sv_tn;
}
@Override
public String toString()
{
return "ClassPojo [sv_tn = "+sv_tn+"]";
}
}
Это мой класс StepDefinition от Cucumber-
package com.qa.stepdefinitions;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import org.apache.http.client.methods.CloseableHttpResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.qa.base.TestBase;
import com.qa.client.RestClient;
import com.qa.data.CreatePort;
import com.qa.data.PortInRequest;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class POSTCreatePort extends TestBase {
TestBase testBase;
String URL;
String serviceURL;
String uri;
RestClient restClient;
CloseableHttpResponse closeableHttpResponse;
public POSTCreatePort() throws IOException {
super();
// TODO Auto-generated constructor stub
}
@Given("^the SOA app is up and running for the POST URL \"([^\"]*)\" and the serviceURL \"([^\"]*)\"$")
public void the_SOA_app_is_up_and_running_for_the_POST_URL_and_the_serviceURL(String arg1, String arg2) throws Throwable {
//Write code here that turns the phrase above into concrete actions
String URL = arg1;
String serviceURL = arg2;
String uri = URL + serviceURL;
System.out.println(uri);
//Create the object reference to call the post method from the REST client class
restClient = new RestClient();
//Pass the Header information
HashMap<String, String> headerMap = new HashMap<String, String>();
headerMap.put("Content-Type", "application/json");
headerMap.put("Authorization", "Basic aW1zY2xpZW50OlpKNHZrc1J1");
//Jackson API- to convert JAVA class to JASON
ObjectMapper mapper = `enter code here`new ObjectMapper();
// In the below line i was to pass the arguments as JASON objects for the POST request above, which i am not sure how to do, can someone please help??
CreatePort createPort = new CreatePort("7987", "midwest_region", PortInRequest.class...??);
Как мне передать объект JASON в POST RQ в качестве аргументов здесь?