<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: JSON to ABAP conversion in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644726#M2014572</link>
    <description>&lt;P&gt;Really appreciate your help Sandra &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 23 May 2022 09:22:08 GMT</pubDate>
    <dc:creator>former_member215184</dc:creator>
    <dc:date>2022-05-23T09:22:08Z</dc:date>
    <item>
      <title>JSON to ABAP conversion</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644723#M2014569</link>
      <description>&lt;P&gt;I have a json file as follows-&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;{&lt;BR /&gt; "1489402" :{&lt;BR /&gt; "Category": "Program error",&lt;BR /&gt; "CorrectionInstructionsObjectList": [{&lt;BR /&gt; "ObjectName": "/SCMB/CL_IM_ORG_CHECK IF_EX_HRBAS00_RELAT~MAINTAIN_RELATION",&lt;BR /&gt; "ObjectType": "METH",&lt;BR /&gt; "ProgramID": "LIMU"&lt;BR /&gt; }, {&lt;BR /&gt; "ObjectName": "/SCMB/MP556100_F01",&lt;BR /&gt; "ObjectType": "REPS",&lt;BR /&gt; "ProgramID": "LIMU"&lt;BR /&gt; }, {&lt;BR /&gt; "ObjectName": "/SCMB/GET_ORG_STRUCTURE",&lt;BR /&gt; "ObjectType": "FUNC",&lt;BR /&gt; "ProgramID": "LIMU"&lt;BR /&gt; }],&lt;BR /&gt; "CurrentStatus": "Released for Customer",&lt;BR /&gt; "PrimarySAPComponent": "tm-md-org",&lt;BR /&gt; "ReleasedOn": "16.07.2010"&lt;BR /&gt; },&lt;BR /&gt; "1490147": {&lt;BR /&gt; "Category": "Program error",&lt;BR /&gt; "CorrectionInstructionsObjectList": [{&lt;BR /&gt; "ObjectName": "/SCMB/CL_ORG_UNIT_MGR",&lt;BR /&gt; "ObjectType": "CPRI",&lt;BR /&gt; "ProgramID": "LIMU"&lt;BR /&gt; }, {&lt;BR /&gt; "ObjectName": "/SCMB/CL_BPTM_HELPER",&lt;BR /&gt; "ObjectType": "CPUB",&lt;BR /&gt; "ProgramID": "LIMU"&lt;BR /&gt; }, {&lt;BR /&gt; "ObjectName": "/SCMB/CL_BPTM_HELPER CHECK_ORG_HIERARCHY",&lt;BR /&gt; "ObjectType": "METH",&lt;BR /&gt; "ProgramID": "LIMU"&lt;BR /&gt; }],&lt;BR /&gt; "CurrentStatus": "Released for Customer",&lt;BR /&gt; "PrimarySAPComponent": "tm-md-bp",&lt;BR /&gt; "ReleasedOn": "21.10.2010"&lt;BR /&gt; }&lt;BR /&gt;}&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;I need to read this and map into an ABAP internal table.&lt;/P&gt;
  &lt;P&gt;As far as I know there are 2 ways to do it-&lt;/P&gt;
  &lt;P&gt;1. &lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;/ui2/cl_json=&amp;gt;deserialize( EXPORTING json = lv_json_content&lt;BR /&gt; pretty_name = /ui2/cl_json=&amp;gt;pretty_mode-camel_case&lt;BR /&gt; CHANGING data = lt_data ).&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;&lt;STRONG&gt;In this case what should be the structure of lt_data ?&lt;/STRONG&gt;&lt;/P&gt;
  &lt;P&gt;2. XSLT&lt;/P&gt;
  &lt;P&gt;&lt;STRONG&gt;Can anyone let me know what should be the XSLT transformation ?&lt;/STRONG&gt;&lt;/P&gt;
  &lt;P&gt;The below one works only for one record:&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;&amp;lt;xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0"&amp;gt;&lt;BR /&gt; &amp;lt;xsl:strip-space elements="*"/&amp;gt;&lt;BR /&gt; &amp;lt;xsl:template match="/object/object"&amp;gt;&lt;BR /&gt; &amp;lt;asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"&amp;gt;&lt;BR /&gt; &amp;lt;asx:values&amp;gt;&lt;BR /&gt; &amp;lt;ROOT&amp;gt;&lt;BR /&gt; &amp;lt;ITEM_NAME&amp;gt;&lt;BR /&gt; &amp;lt;xsl:value-of select="@name"/&amp;gt;&lt;BR /&gt; &amp;lt;/ITEM_NAME&amp;gt;&lt;BR /&gt; &amp;lt;CATEGORY&amp;gt;&lt;BR /&gt; &amp;lt;xsl:value-of select="str[@name='Category']"/&amp;gt;&lt;BR /&gt; &amp;lt;/CATEGORY&amp;gt;&lt;BR /&gt; &amp;lt;OBJECT_LIST&amp;gt;&lt;BR /&gt; &amp;lt;xsl:for-each select="array/object"&amp;gt;&lt;BR /&gt; &amp;lt;item&amp;gt;&lt;BR /&gt; &amp;lt;OBJECT_NAME&amp;gt;&lt;BR /&gt; &amp;lt;xsl:value-of select="str[@name='ObjectName']"/&amp;gt;&lt;BR /&gt; &amp;lt;/OBJECT_NAME&amp;gt;&lt;BR /&gt; &amp;lt;OBJECT_TYPE&amp;gt;&lt;BR /&gt; &amp;lt;xsl:value-of select="str[@name='ObjectType']"/&amp;gt;&lt;BR /&gt; &amp;lt;/OBJECT_TYPE&amp;gt;&lt;BR /&gt; &amp;lt;PROGRAM_ID&amp;gt;&lt;BR /&gt; &amp;lt;xsl:value-of select="str[@name='ProgramID']"/&amp;gt;&lt;BR /&gt; &amp;lt;/PROGRAM_ID&amp;gt;&lt;BR /&gt; &amp;lt;/item&amp;gt;&lt;BR /&gt; &amp;lt;/xsl:for-each&amp;gt;&lt;BR /&gt; &amp;lt;/OBJECT_LIST&amp;gt;&lt;BR /&gt; &amp;lt;CURRENT_STATUS&amp;gt;&lt;BR /&gt; &amp;lt;xsl:value-of select="str[@name='CurrentStatus']"/&amp;gt;&lt;BR /&gt; &amp;lt;/CURRENT_STATUS&amp;gt;&lt;BR /&gt; &amp;lt;PRIMARY_SAP_COMPONENT&amp;gt;&lt;BR /&gt; &amp;lt;xsl:value-of select="str[@name='PrimarySAPComponent']"/&amp;gt;&lt;BR /&gt; &amp;lt;/PRIMARY_SAP_COMPONENT&amp;gt;&lt;BR /&gt; &amp;lt;RELEASED_ON&amp;gt;&lt;BR /&gt; &amp;lt;xsl:value-of select="str[@name='ReleasedOn']"/&amp;gt;&lt;BR /&gt; &amp;lt;/RELEASED_ON&amp;gt;&lt;BR /&gt; &amp;lt;/ROOT&amp;gt;&lt;BR /&gt; &amp;lt;/asx:values&amp;gt;&lt;BR /&gt; &amp;lt;/asx:abap&amp;gt;&lt;BR /&gt; &amp;lt;/xsl:template&amp;gt;&lt;BR /&gt;&amp;lt;/xsl:transform&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;Any help would be appreciated.&lt;/P&gt;
  &lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Mon, 23 May 2022 08:33:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644723#M2014569</guid>
      <dc:creator>former_member215184</dc:creator>
      <dc:date>2022-05-23T08:33:51Z</dc:date>
    </item>
    <item>
      <title>Re: JSON to ABAP conversion</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644724#M2014570</link>
      <description>&lt;P&gt;Please edit your question, select your code and press the button [CODE], which makes the code appear colored/indented, it will be easier for people to look at it. Thank you! &lt;/P&gt;</description>
      <pubDate>Mon, 23 May 2022 08:46:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644724#M2014570</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2022-05-23T08:46:48Z</dc:date>
    </item>
    <item>
      <title>Re: JSON to ABAP conversion</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644725#M2014571</link>
      <description>&lt;P&gt;Concerning the second solution, with XSLT, a first hint is given here (for almost identical JSON): &lt;A href="https://stackoverflow.com/questions/72328039/not-able-to-create-abap-structure-to-use-ui2-cl-json-deserialize"&gt;json - Not able to create ABAP structure to use /ui2/cl_json=&amp;gt;deserialize - Stack Overflow&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;By changing the proposed program this way:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA items TYPE TABLE OF ty_item.
CALL TRANSFORMATION z_objects SOURCE XML json RESULT root = items.&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;and the XSLT this way, it will work:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&amp;lt;xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0"&amp;gt;

  &amp;lt;xsl:strip-space elements="*"/&amp;gt;

  &amp;lt;xsl:template match="/object"&amp;gt;
    &amp;lt;asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"&amp;gt;
      &amp;lt;asx:values&amp;gt;
        &amp;lt;ROOT&amp;gt;
          &amp;lt;xsl:for-each select="object"&amp;gt;
            &amp;lt;item&amp;gt;
              &amp;lt;ITEM_NAME&amp;gt;
                &amp;lt;xsl:value-of select="@name"/&amp;gt;
              &amp;lt;/ITEM_NAME&amp;gt;
              &amp;lt;CATEGORY&amp;gt;
                &amp;lt;xsl:value-of select="str[@name='Category']"/&amp;gt;
              &amp;lt;/CATEGORY&amp;gt;
              &amp;lt;OBJECT_LIST&amp;gt;
                &amp;lt;xsl:for-each select="array/object"&amp;gt;
                  &amp;lt;item&amp;gt;
                    &amp;lt;OBJECT_NAME&amp;gt;
                      &amp;lt;xsl:value-of select="str[@name='ObjectName']"/&amp;gt;
                    &amp;lt;/OBJECT_NAME&amp;gt;
                    &amp;lt;OBJECT_TYPE&amp;gt;
                      &amp;lt;xsl:value-of select="str[@name='ObjectType']"/&amp;gt;
                    &amp;lt;/OBJECT_TYPE&amp;gt;
                    &amp;lt;PROGRAM_ID&amp;gt;
                      &amp;lt;xsl:value-of select="str[@name='ProgramID']"/&amp;gt;
                    &amp;lt;/PROGRAM_ID&amp;gt;
                  &amp;lt;/item&amp;gt;
                &amp;lt;/xsl:for-each&amp;gt;
              &amp;lt;/OBJECT_LIST&amp;gt;
              &amp;lt;CURRENT_STATUS&amp;gt;
                &amp;lt;xsl:value-of select="str[@name='CurrentStatus']"/&amp;gt;
              &amp;lt;/CURRENT_STATUS&amp;gt;
              &amp;lt;PRIMARY_SAP_COMPONENT&amp;gt;
                &amp;lt;xsl:value-of select="str[@name='PrimarySAPComponent']"/&amp;gt;
              &amp;lt;/PRIMARY_SAP_COMPONENT&amp;gt;
              &amp;lt;RELEASED_ON&amp;gt;
                &amp;lt;xsl:value-of select="str[@name='ReleasedOn']"/&amp;gt;
              &amp;lt;/RELEASED_ON&amp;gt;
            &amp;lt;/item&amp;gt;
          &amp;lt;/xsl:for-each&amp;gt;
        &amp;lt;/ROOT&amp;gt;
      &amp;lt;/asx:values&amp;gt;
    &amp;lt;/asx:abap&amp;gt;
  &amp;lt;/xsl:template&amp;gt;

&amp;lt;/xsl:transform&amp;gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I hope it will motivate you to read SAP documentation about transformations, XSLT, JSON-XML, asXML, and ask questions about how it works if needed.&lt;/P&gt;</description>
      <pubDate>Mon, 23 May 2022 09:04:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644725#M2014571</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2022-05-23T09:04:20Z</dc:date>
    </item>
    <item>
      <title>Re: JSON to ABAP conversion</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644726#M2014572</link>
      <description>&lt;P&gt;Really appreciate your help Sandra &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 23 May 2022 09:22:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644726#M2014572</guid>
      <dc:creator>former_member215184</dc:creator>
      <dc:date>2022-05-23T09:22:08Z</dc:date>
    </item>
    <item>
      <title>Re: JSON to ABAP conversion</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644727#M2014573</link>
      <description>&lt;P&gt;Hello  &lt;SPAN class="mention-scrubbed"&gt;siddharth.babbar&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;you may try this code, it shall work:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;  TYPES:
    BEGIN OF ts_cio,
      object_name TYPE string,
      object_type TYPE string,
      program_id  TYPE string,
    END OF ts_cio,
    BEGIN OF ts_error,
      category              TYPE string,
      ci_list               TYPE STANDARD TABLE OF ts_cio WITH DEFAULT KEY,
      current_status        TYPE string,
      primary_sap_component TYPE string,
      released_on           TYPE d,
    END OF ts_error,
    BEGIN OF ts_dump,
      id    TYPE i,
      error TYPE ts_error,
    END OF ts_dump,
    tt_dump TYPE SORTED TABLE OF ts_dump WITH UNIQUE KEY id.

  DATA: lt_data TYPE tt_dump.

  /ui2/cl_json=&amp;gt;deserialize( EXPORTING json = lv_json
                                       pretty_name = /ui2/cl_json=&amp;gt;pretty_mode-camel_case
                                       assoc_arrays = abap_true
                                       assoc_arrays_opt = abap_true
                                       name_mappings = VALUE #(
                                        ( abap = `CI_LIST` json = `CorrectionInstructionsObjectList` )
                                        ( abap = `PROGRAM_ID` json = `ProgramID` )
                                        ( abap = `PRIMARY_SAP_COMPONENT` json = `PrimarySAPComponent` ) )
                             CHANGING data = lt_data ).
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 23 May 2022 17:46:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/json-to-abap-conversion/m-p/12644727#M2014573</guid>
      <dc:creator>alexey_arseniev</dc:creator>
      <dc:date>2022-05-23T17:46:14Z</dc:date>
    </item>
  </channel>
</rss>

