+ Start a Discussion
Ghulam ChaudharyGhulam Chaudhary 

Create JSON file of Account data

Hi everyone,
I created a class that convert Account Record data into JSON and it is working correctly, but if any field values is null, then it throughs an error:"field is null".
In this class,created a map and get all fields that I need but map is containing only field values that are not null and map is not containing fields that are null,so I am facing this problem.
I am sharing my class,please have a look and help me to overcome this problem.

global class AccountRecs 
    {

    //  public static void fetchAccounts(Map<id,account> MapAcc) 
      public static void fetchAccounts(id ids) 
      {
          Map<Id,Account> lstAccount = new Map<Id,Account>([select Id,Name,PT_Company_Name__c,PT_Email__c,PT_Merchant_SPOC_Mobile__c,
          PT_Merchant_SPOC_Name__c,Phone_Verified__c,PT_Landline_Number__c,PT_Order_Dispatch_Time__c,PT_Lead_ID__c, PT_BD_SPOC_Email_ID__c,
          PT_Vendor_spoc_email__c,PT_Vendor_spoc_mobile_number__c,Verification_SPOC_Email__c,PT_MOB_Doc_SPOC_Email_ID__c,PT_MOB_MID_SPOC_Email__c,
          PT_SMT_Manager_Email__c,Business_Info__c,Catalog_Received__c,Warehouse_Added__c,Finance_Kyc__c,PT_Company_Address__c,
          State_CompanyAddress__c,PT_City__c,PT_Pin_Code__c,Zip_Code__c,PT_Beneficiary_Name_in_Bank__c,PT_Bank_IFSC_Code__c,
          PT_Account_No__c, Account_No_international__c,PT_Bank_Name__c,PT_Branch_Name__c,PT_PAN__c,PT_Lead_Stage__c,PT_VAT_TIN__c,
          PT_Warehouse_City__c,Country_WarehouseAddress__c,PT_Pin_Code_Warehouse__c,PT_Warehouse_State__c,PT_Seller_Name__c,
          PT_Additional_Details__c,PT_CAT_Rev_SPOC_Email_ID__c,PT_CAT_Proc_SPOC__c,PT_SMT_SPOC_Email_Id__c
          
          //from account where id in :MapAcc.keyset() ]);
          from account where id =: ids ]);
          
         system.debug('Account--->'+lstAccount);
          
          If(lstAccount.isempty() == false){
          
          JSONGenerator gen = JSON.createGenerator(true);
          for(Account Acc: lstAccount.values()){
          //start 
          gen.writeStartObject();
          
          gen.writeFieldName('Merchant');
             gen.writeStartObject();
              if(Acc.Name!='')
              {
                gen.writeStringField('Name',Acc.Name);
              }
              else
              {
                gen.writeStringField('Name','');
              }
              
              if(Acc.PT_Seller_Name__c!='' || Acc.PT_Seller_Name__c <> null)
              {
                gen.writeStringField('Dispaly_Name',Acc.PT_Seller_Name__c);
              }
              else
              {
                gen.writeStringField('Dispaly_Name','');
              }
              if(Acc.PT_Company_Name__c!='' || acc.pt_company_name__c != null)
              {
                gen.writeStringField('Company_Name',Acc.PT_Company_Name__c);
              }
              else
              {
               gen.writeStringField('Company_Name','');
              }
              if(Acc.PT_Email__c!='')
              {
                gen.writeStringField('Email_Id',Acc.PT_Email__c);
              }
              else
              {
                gen.writeStringField('Email_Id','');
              }
              if(Acc.PT_Merchant_SPOC_Mobile__c!='')
              {
                gen.writeStringField('Mobile Number',Acc.PT_Merchant_SPOC_Mobile__c);
              }
              else
              {
                gen.writeStringField('Mobile Number','');
              }
              if(Acc.Phone_Verified__c!=null)
              {
                gen.writeBooleanField('Phone_Varified',Acc.Phone_Verified__c);
              }
              else
              {
                gen.writeBooleanField('Phone_Varified',null);
              }
              if(Acc.PT_Landline_Number__c!='')
              {
                gen.writeStringField('Landline_Number',Acc.PT_Landline_Number__c);
              }
              else
              {
                gen.writeStringField('Landline_Number','');
              }
              if(Acc.PT_Order_Dispatch_Time__c!='')
              {
                gen.writeStringField('Max_Shipping_Days',Acc.PT_Order_Dispatch_Time__c);
              }
              else
              {
                gen.writeStringField('Max_Shipping_Days','');
              }
              if(Acc.PT_Merchant_SPOC_Name__c!='')
              {
                gen.writeStringField('am_name',Acc.PT_Merchant_SPOC_Name__c);
              }
              else
              {
                gen.writeStringField('am_name','');
              }
              if(Acc.PT_Email__c!='')
              {
                gen.writeStringField('am_email_id',Acc.PT_Email__c);
              }
              else
              {
                gen.writeStringField('am_email_id','');
              }
              if(Acc.PT_Merchant_SPOC_Mobile__c!='')
              {
                gen.writeStringField('am_mobile_number',Acc.PT_Merchant_SPOC_Mobile__c);
              }
              else
              {
                gen.writeStringField('am_mobile_number','');
              }
              if(Acc.PT_Additional_Details__c!='')
              {
                gen.writeStringField('Info',Acc.PT_Additional_Details__c);
              }
              else
              {
                gen.writeStringField('Info','');
              }
              if(Acc.PT_Lead_ID__c!='')
              {
                gen.writeStringField('Lead_Id',Acc.PT_Lead_ID__c);
              }
              else
              {
                gen.writeStringField('Lead_Id','');
              }
              if(Acc.PT_BD_SPOC_Email_ID__c!='')
              {
                gen.writeStringField('Spoc_Email',Acc.PT_BD_SPOC_Email_ID__c);
              }
              else
              {
                gen.writeStringField('Spoc_Email','');
              }
                
           gen.writeFieldName('Spoc_email_smt');
               gen.writeStartObject();
               if(Acc.PT_MOB_Doc_SPOC_Email_ID__c!='')
               {
                 gen.writeStringField('MOBDocVerifierEmail_Id',Acc.PT_MOB_Doc_SPOC_Email_ID__c);
               }
               else
               {
                 gen.writeStringField('MOBDocVerifierEmail_Id','');
               }
               if(Acc.PT_MOB_MID_SPOC_Email__c!='')
               {
                 gen.writeStringField('MOBMerchantCreatorEmail_Id',Acc.PT_MOB_MID_SPOC_Email__c);
               }
               else
               {
                  gen.writeStringField('MOBMerchantCreatorEmail_Id','');
               }
               if(Acc.PT_CAT_Rev_SPOC_Email_ID__c!='')
               {
                 gen.writeStringField('CATReviewerEmail_Id',Acc.PT_CAT_Rev_SPOC_Email_ID__c);
               }
               else
               {
                 gen.writeStringField('CATReviewerEmail_Id','');
               }
               if(Acc.PT_CAT_Proc_SPOC__c!='')
               {
                 gen.writeStringField('CATProctorEmail_Id',Acc.PT_CAT_Proc_SPOC__c);
               }
               else
               {
                 gen.writeStringField('CATProctorEmail_Id','');
               }
               if(Acc.PT_SMT_Manager_Email__c!='')
               {
                 gen.writeStringField('SMTManagerEmail_Id',Acc.PT_SMT_Manager_Email__c);
               }
               else
               {
                 gen.writeStringField('SMTManagerEmail_Id','');
               }
               if(Acc.PT_SMT_SPOC_Email_Id__c!='')
               {
                 gen.writeStringField('SMTExecEmail_Id',Acc.PT_SMT_SPOC_Email_Id__c);
               }
               else
               {
                 gen.writeStringField('SMTExecEmail_Id','');
               }
               gen.writeEndObject(); 
               if(Acc.PT_Lead_Stage__c!='')
               {
                 gen.writeStringField('Sf_State',Acc.PT_Lead_Stage__c);
               }
               else
               {
                 gen.writeStringField('Sf_State','');
               }
               if(Acc.Business_Info__c!=null)
               {
                 gen.writeBooleanField('Business_info',Acc.Business_Info__c);
               }
               else
               {
                 gen.writeBooleanField('Business_info',null);
               }
               if(Acc.Catalog_Received__c!=null)
               {
                 gen.writeBooleanField('Catalog_received',Acc.Catalog_Received__c);
               }
               else
               {
                 gen.writeBooleanField('Catalog_received',null);
               }
               if(Acc.Warehouse_Added__c!=null)
               {
                 gen.writeBooleanField('Warehouse_added',Acc.Warehouse_Added__c);
               }
               else
               {
                 gen.writeBooleanField('Warehouse_added',null);
               }
               if(Acc.Finance_Kyc__c!=null)
               {
                 gen.writeBooleanField('Finance_kyc',Acc.Finance_Kyc__c);
               }
               else
               {
                 gen.writeBooleanField('Finance_kyc',null);
               }
                 
             gen.writeEndObject();
      
          gen.writeFieldName('Address');
            gen.writeStartObject();
            if(Acc.PT_Company_Address__c!='')
            {
               gen.writeStringField('Address',Acc.PT_Company_Address__c);
            }
            else
            {
               gen.writeStringField('Address','');
            }
            if(Acc.PT_City__c!='')
            {
               gen.writeStringField('City',Acc.PT_City__c);
            }
            else
            {
              gen.writeStringField('City','');
            }
            if(Acc.State_CompanyAddress__c!='')
            {
               gen.writeStringField('State',Acc.State_CompanyAddress__c);
            }
            else
            {
               gen.writeStringField('State','');
            }
            if(Acc.PT_Pin_Code__c!='')
            {
               gen.writeStringField('Pin_code',Acc.PT_Pin_Code__c);
            }
            else
            {
              gen.writeStringField('Pin_code','');
            }
            gen.writeEndObject();
       
           gen.writeFieldName('Finance');
            gen.writeStartObject(); 
            if(Acc.PT_Beneficiary_Name_in_Bank__c!='')
            {
                gen.writeStringField('Beneficiary_name',Acc.PT_Beneficiary_Name_in_Bank__c);
            }
            else
            {
               gen.writeStringField('Beneficiary_name','');
            }
            if(Acc.PT_Account_No__c!='')
            {
               gen.writeStringField('Bank_account_no',Acc.PT_Account_No__c);
            }
            else
            {
               gen.writeStringField('Bank_account_no','');
            }
            if(Acc.PT_Bank_IFSC_Code__c!='')
            {
               gen.writeStringField('IFSC_code',Acc.PT_Bank_IFSC_Code__c);
            }
            else
            {
               gen.writeStringField('IFSC_code','');
            }
            if(Acc.PT_Bank_Name__c!='')
            {
                 gen.writeStringField('Bank_name',Acc.PT_Bank_Name__c);
            }
            else
            {
                gen.writeStringField('Bank_name','');
            }
            if(Acc.PT_Branch_Name__c!='')
            {
                 gen.writeStringField('Branch_name',Acc.PT_Branch_Name__c);
            }
            else
            {
                 gen.writeStringField('Branch_name','');
            }
            gen.writeEndObject();
          
          gen.writeFieldName('Kyc');
            gen.writeStartObject();
            if(Acc.PT_PAN__c!='')
            {
                 gen.writeStringField('PAN_Card_No',Acc.PT_PAN__c);
            }
            else
            {
                gen.writeStringField('PAN_Card_No',''); 
            }
            if(Acc.PT_VAT_TIN__c!='')
            {
                 gen.writeStringField('VAT_no',Acc.PT_VAT_TIN__c);
            }
            else
            {
               gen.writeStringField('VAT_no',''); 
            }
            gen.writeEndObject();
        
            gen.writeFieldName('Warehouse');
              gen.writeStartArray();
            
               gen.writeStartObject();
               if(Acc.Country_WarehouseAddress__c!='')
               {
                 gen.writeStringField('Address',Acc.Country_WarehouseAddress__c);
               }
               else
               {
                 gen.writeStringField('Address','');
               }
               if(Acc.PT_Warehouse_State__c!='')
               {
                 gen.writeStringField('State',Acc.PT_Warehouse_State__c);
               }
               else
               {
                 gen.writeStringField('State',''); 
               }
               if(Acc.PT_Warehouse_City__c!='')
               {
                 gen.writeStringField('City',Acc.PT_Warehouse_City__c);
               }
               else
               {
                 gen.writeStringField('City','');
               }
               if(Acc.PT_Pin_Code_Warehouse__c!='')
               {
                 gen.writeStringField('Pin_code',Acc.PT_Pin_Code_Warehouse__c);
               }
               else
               {
                 gen.writeStringField('Pin_code','');
               }
               gen.writeEndObject();
                
              gen.writeEndArray();
          gen.writeEndObject();
          String jsonString = gen.getAsString();
          System.debug('jsonString:'+jsonString);
          }
          
          }
          
      }
    }

its working fine but only non-null fields,suppose I have only two fields-1.Name and other is 2. Company name,if both fields have a value then it generates JSON file like-
{
"Name":"Ghulam",
"Company name":"Paytm"
}

but,if any field is null then it throughs error.
And I want to do if any field is null then also generate JSON file and dispaly the null value in JSON like below--
suppose "Company name" field is null then JSON will like-
{
"Name":"Ghulam",
"Company name":" "
}

I hope someone help me..
Thanks,
Ghulam
sandeep reddy 37sandeep reddy 37
then dont use if control statement and also one  .
dought   you are passing id but where you from taken that  ids 
this what i am asking 
 public static void fetchAccounts(id ids) ;
 
Ghulam ChaudharyGhulam Chaudhary
Hi Sandeep,

yes,I'm taking ids from "public static void fetchAccounts(id ids)"

thanks,
Ghulam