Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有具有嵌套JSON的POST请求主体构造函数的POJO类_Java_Json_Cucumber_Bdd_Pojo - Fatal编程技术网

Java 具有具有嵌套JSON的POST请求主体构造函数的POJO类

Java 具有具有嵌套JSON的POST请求主体构造函数的POJO类,java,json,cucumber,bdd,pojo,Java,Json,Cucumber,Bdd,Pojo,我想为具有嵌套JSON的POST请求主体创建一个具有构造函数的POJO类,但我不确定如何在其中调用JSONArray PS:我不想使用setter方法设置数据,我想使用构造函数来设置数据 以下是JSON: { "FirstName": "test", "LastName": "account", "PASSWORD": "Password123*", "Email&q

我想为具有嵌套JSON的POST请求主体创建一个具有构造函数的POJO类,但我不确定如何在其中调用JSONArray

PS:我不想使用setter方法设置数据,我想使用构造函数来设置数据

以下是JSON:

{
"FirstName": "test",
"LastName": "account",
"PASSWORD": "Password123*",
"Email": [
    {
        "TYPE": "Primary",
        "VALUE": "arpitay6@mail7.io"
    }


]}
我创造的POJO-


import java.util.List;

public class PostAccountCreateAPI {

    private List <Email> email;
    private String password;
    private String firstname;
    private String lastname;
    
    public PostAccountCreateAPI(List<Email> email, String password, String firstname, String lastname) {
        
        this.email = email;
        this.password = password;
        this.firstname = firstname;
        this.lastname = lastname;
    }

    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public List<Email> getEmail() {
        return email;
    }

    public void setEmail(List<Email> email) {
        this.email = email;
    }

}



package pojo;

public class Email {

    private String type;
    private String value;
    
    

    public Email(String type, String value) {
        
        this.type = type;
        this.value = value;
    }


    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

}

导入java.util.List;
公共类PostAccountCreateAPI{
私人名单电子邮件;
私有字符串密码;
私有字符串名;
私有字符串lastname;
public PostAccountCreateAPI(列出电子邮件、字符串密码、字符串名、字符串名){
this.email=电子邮件;
this.password=密码;
this.firstname=firstname;
this.lastname=lastname;
}
公共字符串getFirstname(){
返回名字;
}
public void setFirstname(字符串firstname){
this.firstname=firstname;
}
公共字符串getLastname(){
返回姓氏;
}
public void setLastname(字符串lastname){
this.lastname=lastname;
}
公共字符串getPassword(){
返回密码;
}
public void setPassword(字符串密码){
this.password=密码;
}
公共列表getEmail(){
回复邮件;
}
公用电子邮件(列出电子邮件){
this.email=电子邮件;
}
}
包pojo;
公共类电子邮件{
私有字符串类型;
私有字符串值;
公共电子邮件(字符串类型、字符串值){
this.type=type;
这个值=值;
}
公共字符串getType(){
返回类型;
}
公共void集合类型(字符串类型){
this.type=type;
}
公共字符串getValue(){
返回值;
}
公共void设置值(字符串值){
这个值=值;
}
}
在main方法中,我使用-

PostAccountCreateAPI PostAccountCreateAPI有效负载=新的PostAccountCreateAPI(“pri@mail7.io","P$$w0rd","arpita","garg",


但它不起作用。有人可以建议如何执行此操作吗?

构造函数的第一个参数是
List
,但您当前正在将
字符串作为第一个参数传递给构造函数。创建
Email
对象列表,然后调用
PostAccountCreateAPI
构造函数。

好的……下面我给出一个完整的示例:

PostAccountCreateApi类:

import java.util.List;

public class PostAccountCreateAPI{

    private String FirstName;
    private String LastName;
    private String PASSWORD;
    private List<Email> Email;


    public PostAccountCreateAPI(){}

    public PostAccountCreateAPI(String FirstName, String LastName, String PASSWORD, List<Email> Email){

        this.FirstName = FirstName;

        this.LastName = LastName;

        this.PASSWORD = PASSWORD;

        this.Email = Email;

    }

    public void setFirstName(String FirstName){

        this.FirstName = FirstName;

    }

    public String getFirstName(){

        return this.FirstName;

    }

    public void setLastName(String LastName){

        this.LastName = LastName;

    }

    public String getLastName(){

        return this.LastName;

    }

    public void setPASSWORD(String PASSWORD){

        this.PASSWORD = PASSWORD;

    }

    public String getPASSWORD(){

        return this.PASSWORD;

    }

    public void setEmail(List<Email> Email){

        this.Email = Email;

    }
    public List<Email> getEmail(){

        return this.Email;

    }

}
具有虚拟主方法的主类:


import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {

        List<Email> emailList = new ArrayList<>();

        emailList.add(new Email("Primary", "pri@mail7.io"));
        emailList.add(new Email("Primary", "amimulahsan7@gmail.com"));

        //And list goes on......


        PostAccountCreateAPI postAccountCreateAPI = new PostAccountCreateAPI("arpita", "garg",
                "P@$$w0rd", emailList);
    }
}

导入java.util.ArrayList;
导入java.util.List;
公共班机{
公共静态void main(字符串[]args){
List emailList=new ArrayList();
emailList.add(新电子邮件(“主邮件”),“pri@mail7.io"));
emailList.add(新电子邮件(“主邮件”),“amimulahsan7@gmail.com"));
//这个名单还在继续。。。。。。
PostAccountCreateAPI PostAccountCreateAPI=新的PostAccountCreateAPI(“arpita”,“garg”,
“P$$w0rd”,电子邮件列表);
}
}

它以什么方式不起作用?你有什么错误?谢谢你的回复。但是我不知道如何在main方法中调用这个PostAccountCreateAPI。如何将参数作为列表传递?@ArpitaGarg我现在提供了一个完整的函数示例作为答案。如果答案有帮助,请接受。

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {

        List<Email> emailList = new ArrayList<>();

        emailList.add(new Email("Primary", "pri@mail7.io"));
        emailList.add(new Email("Primary", "amimulahsan7@gmail.com"));

        //And list goes on......


        PostAccountCreateAPI postAccountCreateAPI = new PostAccountCreateAPI("arpita", "garg",
                "P@$$w0rd", emailList);
    }
}