D365 FO:JSON Creation & SERIALIZATION Using FormJsonSerializer & X++

Requirement

SON CREATION & SERIALIZATION USING FORMJSONSERIALIZER & X++ in Microsoft Dynamics 365 for finance and operations.

Format Of Output JSON String & Message

{"itemCategory":123456,"itemClassification":"A","itemCode":"ItemXYZ","itemGroup":"ItemGroup","itemname":"ItemXYZ Name","onDate":"/Date(1597363200000)/","Optimized":"Yes","site":"SiteCode"}

Sample Code

class AcxFormJsonSerializer
{
    /// <summary>
    /// Runs the class with the specified arguments.
    /// </summary>
    /// <param name = "_args">The specified arguments.</param>
    public static void main(Args _args)
    {
        AcxRetailStockContractClsCopy    acxRetailStockContractCls = new AcxRetailStockContractClsCopy();
        acxRetailStockContractCls.parmitemCategory(123456);
        acxRetailStockContractCls.parmitemClassification(ABC::A);
        acxRetailStockContractCls.parmitemCode('ItemXYZ');
        acxRetailStockContractCls.parmitemGroup('ItemGroup');
        acxRetailStockContractCls.parmitemName('ItemXYZ Name');
        acxRetailStockContractCls.parmonDate(today());
        acxRetailStockContractCls.parmOptimized(1);
        acxRetailStockContractCls.parmsite('SiteCode');
        str formJsonSerializer = FormJsonSerializer::serializeClass(acxRetailStockContractCls);
        info(formJsonSerializer);
    }

}

6 thoughts on “D365 FO:JSON Creation & SERIALIZATION Using FormJsonSerializer & X++”

      1. [
        DataMemberAttribute(‘AddlDocDtls’),
        DataCollectionAttribute(Types::Class, classStr(ACPLEinvAddlDocumentDetailsContract))
        ]
        public List parmAddlDocDetails(List _einvAddlDocumentDetailsList = einvAddlDocumentDetailsList)
        {
        einvAddlDocumentDetailsList = _einvAddlDocumentDetailsList;
        return einvAddlDocumentDetailsList;

        }

    1. [
      DataMemberAttribute(‘AddlDocDtls’),
      DataCollectionAttribute(Types::Class, classStr(ACPLEinvAddlDocumentDetailsContract))
      ]
      public List parmAddlDocDetails(List _einvAddlDocumentDetailsList = einvAddlDocumentDetailsList)
      {
      einvAddlDocumentDetailsList = _einvAddlDocumentDetailsList;
      return einvAddlDocumentDetailsList;

      }

  1. I want to deserialized this JSON using Contract Class i.e. data member

    {\”message\”:\”SUCCESS\”,\”status\”:10001,\”data\”:{\”hostapplicationlocaldata_id\”:118990,\”transactiontype_id\”:518,\”hostapplicationkeyvalues\”:[{\”key\”:\”Invoice Number\”,\”value\”:\”i_1\”},{\”key\”:\”Invoice Description\”,\”value\”:\”i_12\”},{\”key\”:\”Invoice Account\”,\”value\”:\”1001\”},{\”key\”:\”Invoice Date\”,\”value\”:\”2020-09-28\”}],\”canbeassociated\”:false,\”showadddocumentpromptonsave\”:null,\”showsidebysideentryprompt\”:null},\”end_point\”:null,\”timestamp\”:\”637369456113683666\”,\”error\”:[]}”;

    Can you please help me out?

Leave a Reply