+ Start a Discussion
sen19sen19 

parsing wrapper class

I have below wrapper class: 

public class GitDeployHistroryWrapper {
    

    public class Details {
        public List<ComponentFailures> componentFailures  {get;set;} 
        public List<ComponentSuccesses> componentSuccesses  {get;set;} 
        public String retrieveResult  {get;set;} 
        public List<ComponentFailures> allComponentMessages  {get;set;} 
        public RunTestResult runTestResult  {get;set;} 
    }

    public String id  {get;set;} 
    public String validatedDeployRequestId  {get;set;} 
    public String deployOptions  {get;set;} 
    public DeployResult deployResult  {get;set;} 

    public class DeployResult {
        public String id  {get;set;} 
        public String messages  {get;set;} 
        public String retrieveResult  {get;set;} 
        public Boolean success  {get;set;} 
        public Boolean checkOnly  {get;set;} 
        public Boolean ignoreWarnings  {get;set;} 
        public Boolean rollbackOnError  {get;set;} 
        public String status  {get;set;} 
        public Integer numberComponentsDeployed  {get;set;} 
        public Integer numberComponentsTotal  {get;set;} 
        public Integer numberComponentErrors  {get;set;} 
        public Integer numberTestsCompleted  {get;set;} 
        public Integer numberTestsTotal  {get;set;} 
        public Integer numberTestErrors  {get;set;} 
        public Details details  {get;set;} 
        public String createdDate {get;set;} 
        public String startDate {get;set;} 
        public String lastModifiedDate {get;set;} 
        public String completedDate {get;set;} 
        public String errorStatusCode {get;set;} 
        public String errorMessage {get;set;} 
        public String stateDetail {get;set;} 
        public String createdBy {get;set;} 
        public String createdByName {get;set;} 
        public String canceledBy {get;set;} 
        public String canceledByName {get;set;} 
        public Boolean done {get;set;} 
        public String runTestResult {get;set;} 
        public Boolean runTestsEnabled {get;set;} 
    }

    public class Successes {
        public String namespace {get;set;}
        public String name {get;set;}
        public String methodName {get;set;}
        public String id {get;set;}
        //public String time {get;set;}
        public String seeAllData {get;set;}
            
    }
    public class Failures {
        public String type {get;set;}
        public String namespace {get;set;}
        public String name {get;set;}
        public String methodName {get;set;}
        public String stackTrace {get;set;}
        public String id {get;set;}
        public String seeAllData {get;set;}
        public String packageName {get;set;}
       // public String time {get;set;}
        
    }

    public class RunTestResult {
        public List<Successes> successes {get;set;} 
        public List<Failures> failures {get;set;} 
        public Double totalTime {get;set;} 
        public String apexLogId {get;set;} 
        public Integer numTestsRun {get;set;} 
        public List<Successes> flowCoverage {get;set;} 
        public List<Successes> codeCoverage {get;set;} 
        public Integer numFailures {get;set;} 
        public List<Successes> codeCoverageWarnings {get;set;} 
        public List<Successes> flowCoverageWarnings {get;set;} 
    }
    public class allComponentMessages{
        public String componentType {get;set;} 
        public String fileName {get;set;} 
        public String fullName {get;set;} 
        public String id {get;set;} 
        public String problem {get;set;} 
        public Boolean success {get;set;} 
        public Boolean warning {get;set;} 
        public Boolean created {get;set;} 
        public Boolean changed {get;set;} 
        public Boolean deleted {get;set;} 
        public Integer lineNumber {get;set;} 
        public Integer columnNumber {get;set;} 
        public Boolean requiresProductionTestRun {get;set;} 
        public String createdDate {get;set;} 
        public Boolean knownPackagingProblem {get;set;} 
        public Boolean forPackageManifestFile {get;set;} 
        public String problemType {get;set;} 
    }   

    public class ComponentFailures {
        public String componentType {get;set;} 
        public String fileName {get;set;} 
        public String fullName {get;set;} 
        public String id {get;set;} 
        public String problem {get;set;} 
        public Boolean success {get;set;} 
        public Boolean warning {get;set;} 
        public Boolean created {get;set;} 
        public Boolean changed {get;set;} 
        public Boolean deleted {get;set;} 
        public Integer lineNumber {get;set;} 
        public Integer columnNumber {get;set;} 
        public Boolean requiresProductionTestRun {get;set;} 
        public String createdDate {get;set;} 
        public Boolean knownPackagingProblem {get;set;} 
        public Boolean forPackageManifestFile {get;set;} 
        public String problemType {get;set;} 
    }
    public class ComponentSuccesses{
        
        public String componentType {get;set;} 
        public String fileName {get;set;} 
        public String fullName {get;set;} 
        public String id {get;set;} 
        public String problem {get;set;} 
        public Boolean success {get;set;} 
        public Boolean warning {get;set;} 
        public Boolean created {get;set;} 
        public Boolean changed {get;set;} 
        public Boolean deleted {get;set;} 
        public Integer lineNumber {get;set;} 
        public Integer columnNumber {get;set;} 
        public Boolean requiresProductionTestRun {get;set;} 
        public String createdDate {get;set;} 
        public Boolean knownPackagingProblem {get;set;} 
        public Boolean forPackageManifestFile {get;set;} 
        public String problemType {get;set;} 
    }

    
    public static GitDeployHistroryWrapper parse(String json) {
        return (GitDeployHistroryWrapper) System.JSON.deserialize(json, GitDeployHistroryWrapper.class);
    }
}

I am deserializing response like below in my main class: GitDeployHistroryWrapper callList= (GitDeployHistroryWrapper)JSON.deserialize(response.getBody(), GitDeployHistroryWrapper.class);

I want list of ComponentSuccesses to return from my main class method. How can i achieve this? Pls help on this.
David Zhu 🔥David Zhu 🔥
You may try this
callList= (list<GitDeployHistroryWrapper.ComponentSuccesses>)JSON.deserialize(response.getBody(),(list<GitDeployHistroryWrapper.ComponentSuccesses>).Class);

You need to make sure the response body returns the right list.