Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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 如何使用gson库形成json,以使对象、列表之间有循环?_Java_Json_Gson - Fatal编程技术网

Java 如何使用gson库形成json,以使对象、列表之间有循环?

Java 如何使用gson库形成json,以使对象、列表之间有循环?,java,json,gson,Java,Json,Gson,我是Java新手,因为我的背景是JavaScript。 输入是通过jsp页面输入的,它们的值被提供给json请求。 我有如下所示的dto对象,使用它我必须形成json,使用Java中的gson库将其作为请求发送给postman。 现在我能够形成请求,但并不完全是不知道,如果有更好的方法来处理我在下面共享的代码,我想知道如何使用不同的visibilityInfo数组来循环visibilityType,因为json请求在请求中会有它们的数组 请参阅下面的dto对象和包含代码的主类 MainClass

我是Java新手,因为我的背景是JavaScript。 输入是通过jsp页面输入的,它们的值被提供给json请求。 我有如下所示的dto对象,使用它我必须形成json,使用Java中的gson库将其作为请求发送给postman。 现在我能够形成请求,但并不完全是不知道,如果有更好的方法来处理我在下面共享的代码,我想知道如何使用不同的
visibilityInfo
数组来循环
visibilityType
,因为json请求在请求中会有它们的数组

请参阅下面的dto对象和包含代码的主类

MainClass.java:

  import java.util.ArrayList;
    import java.util.List;
    import com.google.gson.Gson;
    import com.xxx.nsp.constants.Values;
    import com.xxx.nsp.dto.Address;
    import com.xxx.nsp.dto.SendCVConfirmationNotification;
    import com.xxx.nsp.dto.VisibilityInfo;
    import com.xxx.nsp.dto.VisibilityType;
    import com.xxx.nsp.json.NSPNotificationRequest;
    public class MainClass {
        public static void main(String[] args) {        
            NSPNotificationRequest nr = new NSPNotificationRequest();       
            SendCVConfirmationNotification scv = new SendCVConfirmationNotification();      
            Address addr = new Address();
            addr.setAddressType(Values.addressType);
            addr.setAddressLine1(Values.addressLine1);
            addr.setAddressLine2(Values.addressLine2);
            addr.setAddressLine3(Values.addressLine3);
            addr.setPoliticalDivision(Values.politicalDivision);
            addr.setCity(Values.city);
            addr.setState(Values.state);
            addr.setZipcode(Values.zipcode);
            addr.setCountry(Values.country);
            addr.setCountry(Values.country);
            addr.setPhoneNumber(Values.phoneNumber);        
            List<String> accountNumbers = new ArrayList<>();
            accountNumbers.add("1233");
    accountNumbers.add("2234");         
            VisibilityInfo vi = new VisibilityInfo();
            vi.setVisibilityType(VisibilityType.THIRD_PARTY);
            vi.setAccountNumbers(accountNumbers);
            vi.setReceivingAddress(addr);
            List<VisibilityInfo> visibilityInfo = new ArrayList<>();        
            visibilityInfo.add(vi); 
             scv.setEnroleeName(Values.enroleeName);
             scv.setVisibilityInfo(visibilityInfo);
             scv.setCompanyName(Values.companyName);
             scv.setNickName(Values.nickName);
             scv.setHasClaims(Values.hasClaims);
             scv.setHasReturns(Values.hasReturns);
             scv.setCvURL(Values.cvURL);         
            nr.setTransactionId(Values.transactionId);
            nr.setClientId(Values.clientId);
            nr.setDestinationAddress(Values.destinationAddress);
            nr.setSendCVConfirmationNotification(scv);
            nr.setLocale(Values.locale);
            nr.setMediaType(Values.mediaType);
            nr.setPageId(Values.pageId);        
            Gson gsonObj = new Gson();
            String jsonStr = gsonObj.toJson(nr);
            System.out.println(jsonStr);
        }
    } 
Address.java

AddressType.java

预期结果:需要添加代码,根据
VisibilityType
,循环
VisibilityInfo
,如预期结果所示

{ 
  "transactionId": "12334567", 
  "clientId": "PPP", 
  "destinationAddress": "xyz@ggg.com", 
  "sendConfirmationNotification": { 
    "enroleeName": "Dev User 992", 
    "visibilityInfo": [ 
      { 
        "visibilityType": "FOURTH_PARTY", 
        "accountNumbers": [ 
          "1233", 
          "6722" 
        ], 
        "receivingAddress": null 
      }, 
      { 
        "visibilityType": "OUTBOUND", 
        "accountNumbers": [ 
          "6152", 
          "1277" 
        ], 
        "receivingAddress": null 
      }, 
      { 
        "visibilityType": "INBOUND", 
        "accountNumbers": null, 
        "receivingAddress": { 
          "addressType": "PPP_Store", 
          "addressLine1": null, 
          "addressLine2": null, 
          "addressLine3": null, 
          "politicalDivision": null, 
          "city": "downtown test", 
          "state": "NY", 
          "zipcode": "7539", 
          "country": "US", 
          "phoneNumber": null 
        } 
      } 
    ], 
    "companyName": "Clent_companyName", 
    "nickName": "DXXX1", 
    "hasClaims": false, 
    "hasReturns": false, 
    "cvURL": "http://www.google.com/test/sampleURL" 
  }, 
  "locale": "en_US", 
  "mediaType": "EMAIL", 
  "pageId": "enroll" 
}
获得的实际结果:

{
    "transactionId": "12334567",
    "clientId": "PPP",
    "mediaType": "EMAIL",
    "locale": "en_US",
    "pageId": "enroll",
    "destinationAddress": "xyz@gmail.com",
    "sendCVConfirmationNotification": {
        "enroleeName": "Dev User 992",
        "companyName": "PPP_Clent_companyName",
        "nickName": "DU991",
        "visibilityInfo": [
            {
        "visibilityType": "THIRD_PARTY",
        "accountNumbers": [
            "1233",
            "2234"
        ],
        "receivingAddress": {
            "addressType": "PPP_Store",
            "addressLine1": "addressLine1",
            "addressLine2": "addressLine2",
            "addressLine3": "addressLine3",
            "politicalDivision": "politicalDivision",
            "city": "city",
            "state": "state",
            "zipcode": "zipcode",
            "country": "country",
            "phoneNumber": "phoneNumber"
        }
    }
],
"hasClaims": false,
"hasReturns": false,
"cvURL": "http://www.PPP.com/test/sampleURL"
}    
}

你能帮我写一个有效的代码,并将基于
VisibilityType
VisibilityInfo
的对象数组添加到创建的json对象中。

我建议你为每个类创建一个构造函数,该构造函数包含所有必需的值。这样,您可以用更少的代码创建对象

MainClass.java:

  import java.util.ArrayList;
  import java.util.List;
  import com.google.gson.Gson;
  import com.xxx.nsp.constants.Values;
  import com.xxx.nsp.dto.Address;
  import com.xxx.nsp.dto.SendCVConfirmationNotification;
  import com.xxx.nsp.dto.VisibilityInfo;
  import com.xxx.nsp.dto.VisibilityType;
  import com.xxx.nsp.json.NSPNotificationRequest;
  public class MainClass {
      public static void main(String[] args) {  

          Address addr = new Address(Values.addressType, Values.addressLine1, 
            Values.addressLine2, Values.addressLine3, Values.politicalDivision,
            Values.city, Values.state, Values.zipcode, null, Values.phoneNumber);

          List<String> accountNumbers = new ArrayList<>();
          accountNumbers.add("1233");
          accountNumbers.add("2234");

          List<VisibilityInfo> visibilityInfo = new ArrayList<>();        
          visibilityInfo.add(new VisibilityInfo(VisibilityType.THIRD_PARTY,
            accountNumbers, addr));  

          SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
            Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
            Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

          NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
            Values.clientId, Values.destinationAddress, scv, Values.locale,
            Values.mediaType, Values.pageId);

          Gson gsonObj = new Gson();
          String jsonStr = gsonObj.toJson(nr);
          System.out.println(jsonStr);
      }
  } 
public enum VisibilityType {
    INBOUND,
    OUTBOUND,
    FOURTH_PARTY,
    THIRD_PARTY;
}
 public static void main(String[] args) {  

      List<VisibilityInfo> visibilityInfo = new ArrayList<>(); 

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("1233");
      accountNumbers.add("6722");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.FOURTH_PARTY,
        accountNumbers, null));

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("6152");
      accountNumbers.add("1277");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        accountNumbers, null));

      Address addr = new Address(Values.addressType, null, 
        null, null, null, "downtown test", "NY", "7539", "US", null);    
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        null, addr));

      SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
        Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
        Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

      NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
        Values.clientId, Values.destinationAddress, scv, Values.locale,
        Values.mediaType, Values.pageId);

      Gson gsonObj = new Gson();
      String jsonStr = gsonObj.toJson(nr);
      System.out.println(jsonStr);
  }
将此添加到NSNotificationRequest:

public NSPNotificationRequest(String transactionId, String clientId,
  String destinationAddress, SendCVConfirmationNotification sendCVConfirmationNotification,
  String locale, String mediaType, String pageId){
    this.transactionId = transactionId;
    this.clientId = clientId;
    this.destinationAddress = destinationAddress;
    this.sendCVConfirmationNotification = sendCVConfirmationNotification;
    this.locale = locale;
    this.mediaType = mediaType;
    this.pageId = pageId;
    //if this class includes any other properties, include them accordingly
}
编辑:

要获得指定的预期结果,必须编辑VisibilityType和主方法:

VisibilityType.java:

  import java.util.ArrayList;
  import java.util.List;
  import com.google.gson.Gson;
  import com.xxx.nsp.constants.Values;
  import com.xxx.nsp.dto.Address;
  import com.xxx.nsp.dto.SendCVConfirmationNotification;
  import com.xxx.nsp.dto.VisibilityInfo;
  import com.xxx.nsp.dto.VisibilityType;
  import com.xxx.nsp.json.NSPNotificationRequest;
  public class MainClass {
      public static void main(String[] args) {  

          Address addr = new Address(Values.addressType, Values.addressLine1, 
            Values.addressLine2, Values.addressLine3, Values.politicalDivision,
            Values.city, Values.state, Values.zipcode, null, Values.phoneNumber);

          List<String> accountNumbers = new ArrayList<>();
          accountNumbers.add("1233");
          accountNumbers.add("2234");

          List<VisibilityInfo> visibilityInfo = new ArrayList<>();        
          visibilityInfo.add(new VisibilityInfo(VisibilityType.THIRD_PARTY,
            accountNumbers, addr));  

          SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
            Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
            Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

          NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
            Values.clientId, Values.destinationAddress, scv, Values.locale,
            Values.mediaType, Values.pageId);

          Gson gsonObj = new Gson();
          String jsonStr = gsonObj.toJson(nr);
          System.out.println(jsonStr);
      }
  } 
public enum VisibilityType {
    INBOUND,
    OUTBOUND,
    FOURTH_PARTY,
    THIRD_PARTY;
}
 public static void main(String[] args) {  

      List<VisibilityInfo> visibilityInfo = new ArrayList<>(); 

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("1233");
      accountNumbers.add("6722");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.FOURTH_PARTY,
        accountNumbers, null));

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("6152");
      accountNumbers.add("1277");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        accountNumbers, null));

      Address addr = new Address(Values.addressType, null, 
        null, null, null, "downtown test", "NY", "7539", "US", null);    
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        null, addr));

      SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
        Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
        Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

      NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
        Values.clientId, Values.destinationAddress, scv, Values.locale,
        Values.mediaType, Values.pageId);

      Gson gsonObj = new Gson();
      String jsonStr = gsonObj.toJson(nr);
      System.out.println(jsonStr);
  }
Main:

  import java.util.ArrayList;
  import java.util.List;
  import com.google.gson.Gson;
  import com.xxx.nsp.constants.Values;
  import com.xxx.nsp.dto.Address;
  import com.xxx.nsp.dto.SendCVConfirmationNotification;
  import com.xxx.nsp.dto.VisibilityInfo;
  import com.xxx.nsp.dto.VisibilityType;
  import com.xxx.nsp.json.NSPNotificationRequest;
  public class MainClass {
      public static void main(String[] args) {  

          Address addr = new Address(Values.addressType, Values.addressLine1, 
            Values.addressLine2, Values.addressLine3, Values.politicalDivision,
            Values.city, Values.state, Values.zipcode, null, Values.phoneNumber);

          List<String> accountNumbers = new ArrayList<>();
          accountNumbers.add("1233");
          accountNumbers.add("2234");

          List<VisibilityInfo> visibilityInfo = new ArrayList<>();        
          visibilityInfo.add(new VisibilityInfo(VisibilityType.THIRD_PARTY,
            accountNumbers, addr));  

          SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
            Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
            Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

          NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
            Values.clientId, Values.destinationAddress, scv, Values.locale,
            Values.mediaType, Values.pageId);

          Gson gsonObj = new Gson();
          String jsonStr = gsonObj.toJson(nr);
          System.out.println(jsonStr);
      }
  } 
public enum VisibilityType {
    INBOUND,
    OUTBOUND,
    FOURTH_PARTY,
    THIRD_PARTY;
}
 public static void main(String[] args) {  

      List<VisibilityInfo> visibilityInfo = new ArrayList<>(); 

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("1233");
      accountNumbers.add("6722");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.FOURTH_PARTY,
        accountNumbers, null));

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("6152");
      accountNumbers.add("1277");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        accountNumbers, null));

      Address addr = new Address(Values.addressType, null, 
        null, null, null, "downtown test", "NY", "7539", "US", null);    
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        null, addr));

      SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
        Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
        Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

      NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
        Values.clientId, Values.destinationAddress, scv, Values.locale,
        Values.mediaType, Values.pageId);

      Gson gsonObj = new Gson();
      String jsonStr = gsonObj.toJson(nr);
      System.out.println(jsonStr);
  }
publicstaticvoidmain(字符串[]args){
List visibilityInfo=新建ArrayList();
List AccountNumber=new ArrayList();
账号。添加(“1233”);
账号。添加(“6722”);
visibilityInfo.add(新visibilityInfo)(VisibilityType.FOURTH_PARTY,
accountnumber,null);
List AccountNumber=new ArrayList();
账号。添加(“6152”);
账号。添加(“1277”);
visibilityInfo.add(新visibilityInfo(VisibilityType.OUTBOUND,
accountnumber,null);
地址addr=新地址(Values.addressType,null,
空,空,空,“市中心测试”,“纽约”,“7539”,“美国”,空);
visibilityInfo.add(新visibilityInfo(VisibilityType.OUTBOUND,
null,addr));
SendCVConfirmationNotification scv=新的SendCVConfirmationNotification(
Values.enroleeName、Values.companyName、Values.昵称、visibilityInfo、,
Values.hasClaims、Values.hasReturns、Values.cvURL、null);
NSNotificationRequest nr=新的NSNotificationRequest(Values.transactionId,
Values.clientId、Values.destinationAddress、scv、Values.locale、,
Values.mediaType、Values.pageId);
Gson gsonObj=新的Gson();
字符串jsonStr=gsonObj.toJson(nr);
系统输出打印LN(jsonStr);
}
如果我犯了一个错误或误解了你的问题,告诉我,我会设法解决

以下是一些提示:

  • 尽量发布不太一般的问题和需要较少代码的更具体的问题
  • 查看Java文档、构造函数、数据类型等
  • 不要使用那么多枚举。在某些情况下,它们有意义(VisibilityType),而在某些情况下它们没有意义(值)

我建议您为每个类创建一个构造函数,该构造函数接受所有必需的值。这样,您可以用更少的代码创建对象

MainClass.java:

  import java.util.ArrayList;
  import java.util.List;
  import com.google.gson.Gson;
  import com.xxx.nsp.constants.Values;
  import com.xxx.nsp.dto.Address;
  import com.xxx.nsp.dto.SendCVConfirmationNotification;
  import com.xxx.nsp.dto.VisibilityInfo;
  import com.xxx.nsp.dto.VisibilityType;
  import com.xxx.nsp.json.NSPNotificationRequest;
  public class MainClass {
      public static void main(String[] args) {  

          Address addr = new Address(Values.addressType, Values.addressLine1, 
            Values.addressLine2, Values.addressLine3, Values.politicalDivision,
            Values.city, Values.state, Values.zipcode, null, Values.phoneNumber);

          List<String> accountNumbers = new ArrayList<>();
          accountNumbers.add("1233");
          accountNumbers.add("2234");

          List<VisibilityInfo> visibilityInfo = new ArrayList<>();        
          visibilityInfo.add(new VisibilityInfo(VisibilityType.THIRD_PARTY,
            accountNumbers, addr));  

          SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
            Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
            Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

          NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
            Values.clientId, Values.destinationAddress, scv, Values.locale,
            Values.mediaType, Values.pageId);

          Gson gsonObj = new Gson();
          String jsonStr = gsonObj.toJson(nr);
          System.out.println(jsonStr);
      }
  } 
public enum VisibilityType {
    INBOUND,
    OUTBOUND,
    FOURTH_PARTY,
    THIRD_PARTY;
}
 public static void main(String[] args) {  

      List<VisibilityInfo> visibilityInfo = new ArrayList<>(); 

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("1233");
      accountNumbers.add("6722");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.FOURTH_PARTY,
        accountNumbers, null));

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("6152");
      accountNumbers.add("1277");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        accountNumbers, null));

      Address addr = new Address(Values.addressType, null, 
        null, null, null, "downtown test", "NY", "7539", "US", null);    
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        null, addr));

      SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
        Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
        Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

      NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
        Values.clientId, Values.destinationAddress, scv, Values.locale,
        Values.mediaType, Values.pageId);

      Gson gsonObj = new Gson();
      String jsonStr = gsonObj.toJson(nr);
      System.out.println(jsonStr);
  }
将此添加到NSNotificationRequest:

public NSPNotificationRequest(String transactionId, String clientId,
  String destinationAddress, SendCVConfirmationNotification sendCVConfirmationNotification,
  String locale, String mediaType, String pageId){
    this.transactionId = transactionId;
    this.clientId = clientId;
    this.destinationAddress = destinationAddress;
    this.sendCVConfirmationNotification = sendCVConfirmationNotification;
    this.locale = locale;
    this.mediaType = mediaType;
    this.pageId = pageId;
    //if this class includes any other properties, include them accordingly
}
编辑:

要获得指定的预期结果,必须编辑VisibilityType和主方法:

VisibilityType.java:

  import java.util.ArrayList;
  import java.util.List;
  import com.google.gson.Gson;
  import com.xxx.nsp.constants.Values;
  import com.xxx.nsp.dto.Address;
  import com.xxx.nsp.dto.SendCVConfirmationNotification;
  import com.xxx.nsp.dto.VisibilityInfo;
  import com.xxx.nsp.dto.VisibilityType;
  import com.xxx.nsp.json.NSPNotificationRequest;
  public class MainClass {
      public static void main(String[] args) {  

          Address addr = new Address(Values.addressType, Values.addressLine1, 
            Values.addressLine2, Values.addressLine3, Values.politicalDivision,
            Values.city, Values.state, Values.zipcode, null, Values.phoneNumber);

          List<String> accountNumbers = new ArrayList<>();
          accountNumbers.add("1233");
          accountNumbers.add("2234");

          List<VisibilityInfo> visibilityInfo = new ArrayList<>();        
          visibilityInfo.add(new VisibilityInfo(VisibilityType.THIRD_PARTY,
            accountNumbers, addr));  

          SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
            Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
            Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

          NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
            Values.clientId, Values.destinationAddress, scv, Values.locale,
            Values.mediaType, Values.pageId);

          Gson gsonObj = new Gson();
          String jsonStr = gsonObj.toJson(nr);
          System.out.println(jsonStr);
      }
  } 
public enum VisibilityType {
    INBOUND,
    OUTBOUND,
    FOURTH_PARTY,
    THIRD_PARTY;
}
 public static void main(String[] args) {  

      List<VisibilityInfo> visibilityInfo = new ArrayList<>(); 

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("1233");
      accountNumbers.add("6722");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.FOURTH_PARTY,
        accountNumbers, null));

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("6152");
      accountNumbers.add("1277");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        accountNumbers, null));

      Address addr = new Address(Values.addressType, null, 
        null, null, null, "downtown test", "NY", "7539", "US", null);    
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        null, addr));

      SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
        Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
        Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

      NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
        Values.clientId, Values.destinationAddress, scv, Values.locale,
        Values.mediaType, Values.pageId);

      Gson gsonObj = new Gson();
      String jsonStr = gsonObj.toJson(nr);
      System.out.println(jsonStr);
  }
Main:

  import java.util.ArrayList;
  import java.util.List;
  import com.google.gson.Gson;
  import com.xxx.nsp.constants.Values;
  import com.xxx.nsp.dto.Address;
  import com.xxx.nsp.dto.SendCVConfirmationNotification;
  import com.xxx.nsp.dto.VisibilityInfo;
  import com.xxx.nsp.dto.VisibilityType;
  import com.xxx.nsp.json.NSPNotificationRequest;
  public class MainClass {
      public static void main(String[] args) {  

          Address addr = new Address(Values.addressType, Values.addressLine1, 
            Values.addressLine2, Values.addressLine3, Values.politicalDivision,
            Values.city, Values.state, Values.zipcode, null, Values.phoneNumber);

          List<String> accountNumbers = new ArrayList<>();
          accountNumbers.add("1233");
          accountNumbers.add("2234");

          List<VisibilityInfo> visibilityInfo = new ArrayList<>();        
          visibilityInfo.add(new VisibilityInfo(VisibilityType.THIRD_PARTY,
            accountNumbers, addr));  

          SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
            Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
            Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

          NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
            Values.clientId, Values.destinationAddress, scv, Values.locale,
            Values.mediaType, Values.pageId);

          Gson gsonObj = new Gson();
          String jsonStr = gsonObj.toJson(nr);
          System.out.println(jsonStr);
      }
  } 
public enum VisibilityType {
    INBOUND,
    OUTBOUND,
    FOURTH_PARTY,
    THIRD_PARTY;
}
 public static void main(String[] args) {  

      List<VisibilityInfo> visibilityInfo = new ArrayList<>(); 

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("1233");
      accountNumbers.add("6722");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.FOURTH_PARTY,
        accountNumbers, null));

      List<String> accountNumbers = new ArrayList<>();
      accountNumbers.add("6152");
      accountNumbers.add("1277");       
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        accountNumbers, null));

      Address addr = new Address(Values.addressType, null, 
        null, null, null, "downtown test", "NY", "7539", "US", null);    
      visibilityInfo.add(new VisibilityInfo(VisibilityType.OUTBOUND,
        null, addr));

      SendCVConfirmationNotification scv = new SendCVConfirmationNotification(
        Values.enroleeName, Values.companyName, Values.nickName, visibilityInfo, 
        Values.hasClaims, Values.hasReturns, Values.cvURL, null); 

      NSPNotificationRequest nr = new NSPNotificationRequest(Values.transactionId,
        Values.clientId, Values.destinationAddress, scv, Values.locale,
        Values.mediaType, Values.pageId);

      Gson gsonObj = new Gson();
      String jsonStr = gsonObj.toJson(nr);
      System.out.println(jsonStr);
  }
publicstaticvoidmain(字符串[]args){
List visibilityInfo=新建ArrayList();
List AccountNumber=new ArrayList();
账号。添加(“1233”);
账号。添加(“6722”);
visibilityInfo.add(新visibilityInfo)(VisibilityType.FOURTH_PARTY,
accountnumber,null);
List AccountNumber=new ArrayList();
账号。添加(“6152”);
账号。添加(“1277”);
visibilityInfo.add(新visibilityInfo(VisibilityType.OUTBOUND,
accountnumber,null);
地址addr=新地址(Values.addressType,null,
空,空,空,“市中心测试”,“纽约”,“7539”,“美国”,空);
visibilityInfo.add(新visibilityInfo(VisibilityType.OUTBOUND,
null,addr));
SendCVConfirmationNotification scv=新的SendCVConfirmationNotification(
Values.enroleeName、Values.companyName、Values.昵称、visibilityInfo、,
Values.hasClaims、Values.hasReturns、Values.cvURL、null);
NSNotificationRequest nr=新的NSNotificationRequest(Values.transactionId,
Values.clientId、Values.destinationAddress、scv、Values.locale、,
Values.mediaType、Values.pageId);
Gson gsonObj=新的Gson();
字符串jsonStr=gsonObj.toJson(nr);
系统输出打印LN(jsonStr);
}
如果我犯了一个错误或误解了你的问题,告诉我,我会设法解决

以下是一些提示:

  • 尽量发布不太一般的问题和需要较少代码的更具体的问题
  • 查看Java文档、构造函数、数据类型等
  • 不要使用那么多枚举。在某些情况下,它们有意义(VisibilityType),而在某些情况下它们没有意义(值)