You need to sign in to do that
Don't have an account?
JSON Serialization & Deserialization
Hi all,
I'm serializing a custom class containing case object and other objects to JSON, and case's picklist serialize as this
Is it any kind of bug on the JSON Serialization or Deserialization?
When serializing Case records directly, picklists serialize in different way
Class code
Here you have a complete object JSON serialization
I'm serializing a custom class containing case object and other objects to JSON, and case's picklist serialize as this
"Status":{"value":"Finished"}producing this error message when trying to deserialize
System.JSONException: Cannot deserialize instance of picklist from START_OBJECT value { or request may be missing a required field at [line:1, column:733]
Is it any kind of bug on the JSON Serialization or Deserialization?
When serializing Case records directly, picklists serialize in different way
TestJSON.cls ================================ List<Case> lc = new List<Case>(); lc.add(new Case(Status = 'Finished', External_ID__c = 'IDEXT_1')); lc.add(new Case(Status = 'Finished', External_ID__c = 'IDEXT_2')); lc.add(new Case(Status = 'Finished', External_ID__c = 'IDEXT_3')); String js = JSON.serialize(lc); System.debug(js); ================================ 36.0 APEX_CODE,DEBUG;APEX_PROFILING,DEBUG;CALLOUT,INFO;DB,INFO;VALIDATION,INFO;WORKFLOW,INFO Execute Anonymous: List<Case> lc = new List<Case>(); Execute Anonymous: lc.add(new Case(Status = 'Finished', External_ID__c = 'IDEXT_1')); Execute Anonymous: lc.add(new Case(Status = 'Finished', External_ID__c = 'IDEXT_2')); Execute Anonymous: lc.add(new Case(Status = 'Finished', External_ID__c = 'IDEXT_3')); Execute Anonymous: String js = JSON.serialize(lc); Execute Anonymous: System.debug(js); 11:23:45.28 (28314495)|USER_INFO|[EXTERNAL]|00524000000Uis5|4contrdev4.jorge.ortega@endesa.accenture.com|hora estándar de Europa central|GMT+02:00 11:23:45.28 (28336160)|EXECUTION_STARTED 11:23:45.28 (28342791)|CODE_UNIT_STARTED|[EXTERNAL]|execute_anonymous_apex 11:23:45.28 (30735799)|USER_DEBUG|[6]|DEBUG|[{"attributes":{"type":"Case"},"Status":"Finished","External_ID__c":"IDEXT_1"},{"attributes":{"type":"Case"},"Status":"Finished","External_ID__c":"IDEXT_2"},{"attributes":{"type":"Case"},"Status":"Finished","External_ID__c":"IDEXT_3"}] 11:23:45.30 (30797222)|CUMULATIVE_LIMIT_USAGE 11:23:45.30 (30797222)|LIMIT_USAGE_FOR_NS|(default)| Number of SOQL queries: 0 out of 100 Number of query rows: 0 out of 50000 Number of SOSL queries: 0 out of 20 Number of DML statements: 0 out of 150 Number of DML rows: 0 out of 10000 Maximum CPU time: 0 out of 10000 Maximum heap size: 0 out of 6000000 Number of callouts: 0 out of 100 Number of Email Invocations: 0 out of 10 Number of future calls: 0 out of 50 Number of queueable jobs added to the queue: 0 out of 50 Number of Mobile Apex push calls: 0 out of 10 11:23:45.30 (30797222)|CUMULATIVE_LIMIT_USAGE_END 11:23:45.28 (30839576)|CODE_UNIT_FINISHED|execute_anonymous_apex 11:23:45.28 (32935152)|EXECUTION_FINISHED
Class code
global class EquipmentRemovalJob { public B1ActivationRequest activation; //There is some business methods } public class B1ActivationRequest { @InvocableVariable public Case request; @InvocableVariable public Contract_ATR__c contract; @InvocableVariable public CUPS__c cups; }
Here you have a complete object JSON serialization
{"activation":{"request":{"attributes":{"type":"Case","url":"/services/data/v37.0/sobjects/Case/5008E0000051XOlQAM"},"LastModifiedDate":"2016-08-04T07:33:14.000+0000","LaunchAnnulmentFlow__c":false,"AccountId":"0018E00000LTgvcQAD","Process_Code_Description__c":"B1","Activation_mode__c":"J","Ready_To_Annulment_Flows__c":false,"Do_NOT_send_communication__c":false,"Energy_guarantor__c":"0018E00000LTgvcQAD","BusinessHoursId":"01m24000000Ku16AAC","CreatedById":"00524000000Uis5AAC","Reason_unsubscription_Code_Description__c":"03","ClosedOnCreate":false,"IsClosedOnCreate":false,"Pass_Code__c":"01","Term_symbol_activation__c":"_IM1_/servlet/servlet.FileDownload?file=01525000000A0IU_IM2_¡Qué pena! la imagen no puede mostrarse_IM3_","Status":{"value":"Finished"},"Activation_business_term_icon__c":"_IM1_/img/samples/flag_red.gif_IM2_No se encuentra la imagen_IM3_","IsDeleted":false,"ReceptionDateToShow__c":"2016-08-04T06:34:00.000+0000","isManual__c":true,"CodeDemand__c":"002900001025","Priority":"Medium","Is_first_evaluation__c":true,"REE_Distributor_Code_Description__c":"0029","CreatedByAlias":"JOT","IsStopped":false,"IsEscalated":false,"CUPS__c":"a0r8E000000m841QAA","Term_symbol_acceptance__c":"_IM1_/servlet/servlet.FileDownload?file=01525000000A0IU_IM2_¡Qué pena! la imagen no puede mostrarse_IM3_","CreatedDate":"2016-08-04T06:35:23.000+0000","Id":"5008E0000051XOlQAM","Subscription_Claims__c":false,"Reception_date__c":"2016-08-04T06:00:00.000+0000","Request_Label_Dinamic_Record_Choice__c":"00001025 B1","Input_channel__c":"Online","CNAE__c":"5221","EDE_Energy_user__c":"0018E00000LTiF2QAL","Hidden_Reception_Date__c":"2016-08-04","Term_status_activation__c":"Within term","Stop__c":false,"Ready2CalculateActivationMode__c":false,"IsClosed":false,"VU_issue__c":false,"Activation_expected_date_old__c":"2016-08-19","TestingLaunchingRequestActivationFlow__c":true,"Activation_expected_date__c":"2016-08-04","Term_status_acceptance__c":"Within term","OwnerId":"00G24000001E9t1EAC","Claims_exists_interactions__c":false,"CaseNumber":"00001025","Activation_date__c":"2016-08-04","Acceptance_business_term_icon__c":"_IM1_/img/samples/flag_red.gif_IM2_No se encuentra la imagen_IM3_","LastModifiedByAlias":"JOT","Ready_To_Col__c":true,"Payment_holder__c":"0018E00000LTgvcQAD","Contract_holder__c":"0018E00000LTgvcQAD","Original_Contract__c":"a0u8E000000Z6XNQA0","Requested_power_1__c":4.4,"SystemModstamp":"2016-08-04T07:33:14.000+0000","Energy_user__c":"0018E00000LTiF2QAL","TestingLaunchingActValCollisionFlow__c":false,"Ready_To_Launch_Policy_Mail__c":false,"EventsProcessedDate":"2016-08-04T06:35:23.000+0000","Enforced_communication__c":false,"PM_type__c":"5","Ready_To_Validation_Flows__c":false,"Process_Code_Reason_Unsubscription_F__c":"B1 - 03","LastModifiedById":"00524000000Uis5AAC"},"cups":{"attributes":{"type":"CUPS__c","url":"/services/data/v37.0/sobjects/CUPS__c/a0r8E000000m841QAA"},"Id":"a0r8E000000m841QAA","Provision_s_tension__c":"38","Tension_s_measure__c":null,"State_derivation__c":{"value":"5"},"Provisioning_address__c":"AFUERAS AFUERAS 0 . ALMUDEVAR . HUESCA . 22283","CNAE__c":"5221","Contract_holder__c":"","Payment_holder__c":"","Energy_user__c":"","Guarantor__c":"","SCE_CEMPTITU__c":"00001","CFINCA__c":4784.0,"CDERIND__c":1.0,"CPTOSERV__c":1.0,"Name":"ES0031300004784001XX0F","ContractInForce__c":""},"contract":{"attributes":{"type":"Contract_ATR__c","url":"/services/data/v37.0/sobjects/Contract_ATR__c/a0u8E000000Z6XNQA0"},"Id":"a0u8E000000Z6XNQA0","Sequential__c":101.0,"Entry_date__c":"2016-04-04","Code_contract_Policy_version__c":"8506172861","Version_end_date__c":"2016-08-04","Leaving_date__c":"2016-08-04","SCE_CLINNEG__c":"1","SCE_CEMPTITU__c":"1","REE_distributor_code_description__c":"0029","Description_agent_REE_code__c":null,"Status__c":{"value":"21"}}}}