<?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 Converting Json table format data to ABAP internal table...??? in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124552#M1905036</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi...All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have requirement to consume RESTFUL Web service in ABAP program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As of now i am able to consume webservice which returns single field value STATUS - PASS/FAIL.&lt;/P&gt;&lt;P&gt;(if we pass username and password - it will provide status return ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But now web service is in such a way taht - it will provide Json table data as return value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, My concern is how to convert the JSON format table data to ABAP structure(internal Table).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your response is highly appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mahesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 07 Jun 2015 14:13:03 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2015-06-07T14:13:03Z</dc:date>
    <item>
      <title>Converting Json table format data to ABAP internal table...???</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124552#M1905036</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi...All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have requirement to consume RESTFUL Web service in ABAP program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As of now i am able to consume webservice which returns single field value STATUS - PASS/FAIL.&lt;/P&gt;&lt;P&gt;(if we pass username and password - it will provide status return ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But now web service is in such a way taht - it will provide Json table data as return value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, My concern is how to convert the JSON format table data to ABAP structure(internal Table).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your response is highly appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mahesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 07 Jun 2015 14:13:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124552#M1905036</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2015-06-07T14:13:03Z</dc:date>
    </item>
    <item>
      <title>Re: Converting Json table format data to ABAP internal table...???</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124553#M1905037</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Read my blog here. It explains in detail your requirement.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;A __default_attr="126755" __jive_macro_name="blogpost" class="jive_macro jive_macro_blogpost" data-orig-content="Hybrid OData Implementation Example" href="https://community.sap.com/"&gt;&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 07 Jun 2015 14:16:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124553#M1905037</guid>
      <dc:creator>Ankit_Maskara</dc:creator>
      <dc:date>2015-06-07T14:16:30Z</dc:date>
    </item>
    <item>
      <title>Re: Converting Json table format data to ABAP internal table...???</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124554#M1905038</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi..Ankit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your information.&lt;/P&gt;&lt;P&gt;Is Odata mandatory for Json .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here i have small concern - is that&lt;/P&gt;&lt;P&gt;i have json table format data in flat file(notepad).So how can i test the same with ABAP report(Whether&amp;nbsp; able to load internal table).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Suggest me please.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mahesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 07 Jun 2015 14:54:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124554#M1905038</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2015-06-07T14:54:24Z</dc:date>
    </item>
    <item>
      <title>Re: Converting Json table format data to ABAP internal table...???</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124555#M1905039</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No it's just an example.&lt;/P&gt;&lt;P&gt;You need to use transformations as shown in the example and you can convert JSON data to internal Table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 07 Jun 2015 15:18:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124555#M1905039</guid>
      <dc:creator>Ankit_Maskara</dc:creator>
      <dc:date>2015-06-07T15:18:26Z</dc:date>
    </item>
    <item>
      <title>Re: Converting Json table format data to ABAP internal table...???</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124556#M1905040</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mahesh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just try the below sample code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Input would be JSON string and output is an ABAP internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION ZFM_BPM_JSON_TO_DATA.&lt;/P&gt;&lt;P&gt;*"----------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;*"*"Local Interface:&lt;/P&gt;&lt;P&gt;*"&amp;nbsp; IMPORTING&lt;/P&gt;&lt;P&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUE(JSON) TYPE&amp;nbsp; STRING&lt;/P&gt;&lt;P&gt;*"&amp;nbsp; CHANGING&lt;/P&gt;&lt;P&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUE(DATA) TYPE&amp;nbsp; ANY&lt;/P&gt;&lt;P&gt;*"----------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lv_off TYPE i.&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lv_len TYPE i.&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lv_key TYPE string.&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lv_value TYPE string.&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lv_char TYPE char1.&amp;nbsp;&amp;nbsp;&amp;nbsp; "Current chacater&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lv_pchar TYPE char1.&amp;nbsp;&amp;nbsp; "Previous character&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lv_instr TYPE boole_d. "Indicator: cursor in string&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lv_level TYPE i.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Depth inside a block&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lv_table TYPE boole_d.&lt;/P&gt;&lt;P&gt;&amp;nbsp; FIELD-SYMBOLS: &amp;lt;fk&amp;gt; TYPE string.&lt;/P&gt;&lt;P&gt;&amp;nbsp; FIELD-SYMBOLS: &amp;lt;data&amp;gt; TYPE any.&lt;/P&gt;&lt;P&gt;&amp;nbsp; FIELD-SYMBOLS: &amp;lt;table&amp;gt; TYPE ANY TABLE.&lt;/P&gt;&lt;P&gt;&amp;nbsp; FIELD-SYMBOLS: &amp;lt;sotab&amp;gt; TYPE SORTED TABLE.&lt;/P&gt;&lt;P&gt;&amp;nbsp; FIELD-SYMBOLS: &amp;lt;sttab&amp;gt; TYPE STANDARD TABLE.&lt;/P&gt;&lt;P&gt;&amp;nbsp; FIELD-SYMBOLS: &amp;lt;line&amp;gt; TYPE any.&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: ls_line TYPE REF TO data.&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lr_td TYPE REF TO cl_abap_typedescr.&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA: lr_ttd TYPE REF TO cl_abap_tabledescr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* If the incoming json contains no '{}[]', we are dealing with&lt;/P&gt;&lt;P&gt;* a basic (scalar) value that is simply assigned to the data&lt;/P&gt;&lt;P&gt;* and then we return&lt;/P&gt;&lt;P&gt;&amp;nbsp; IF json NA '{}[]'.&lt;/P&gt;&lt;P&gt;* Replace escape characters (TODO: Check if there are more!)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_value = json.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REPLACE ALL OCCURRENCES OF '\n' IN lv_value WITH cl_abap_char_utilities=&amp;gt;newline.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REPLACE ALL OCCURRENCES OF '\t' IN lv_value WITH cl_abap_char_utilities=&amp;gt;horizontal_tab.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REPLACE ALL OCCURRENCES OF '\f' IN lv_value WITH cl_abap_char_utilities=&amp;gt;form_feed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REPLACE ALL OCCURRENCES OF '\v' IN lv_value WITH cl_abap_char_utilities=&amp;gt;vertical_tab.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REPLACE ALL OCCURRENCES OF '\b' IN lv_value WITH cl_abap_char_utilities=&amp;gt;backspace.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REPLACE ALL OCCURRENCES OF '\\' IN lv_value WITH '\'.&lt;/P&gt;&lt;P&gt;* TODO: Deal with specific data types, e.g. dates etc.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = lv_value.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT.&lt;/P&gt;&lt;P&gt;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; lv_len = strlen( json ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Check if we are dealing with a table&lt;/P&gt;&lt;P&gt;&amp;nbsp; lr_td = cl_abap_typedescr=&amp;gt;describe_by_data( data ).&lt;/P&gt;&lt;P&gt;&amp;nbsp; IF lr_td-&amp;gt;type_kind = cl_abap_typedescr=&amp;gt;typekind_table.&lt;/P&gt;&lt;P&gt;* This information is used later...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_table = 'X'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASSIGN data TO &amp;lt;table&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE DATA ls_line LIKE LINE OF &amp;lt;table&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASSIGN ls_line-&amp;gt;* TO &amp;lt;line&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp; ELSE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_table = ' '.&lt;/P&gt;&lt;P&gt;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Reset counters/flags&lt;/P&gt;&lt;P&gt;&amp;nbsp; lv_off = 0.&lt;/P&gt;&lt;P&gt;&amp;nbsp; lv_instr = ' '.&lt;/P&gt;&lt;P&gt;&amp;nbsp; lv_level = 0.&lt;/P&gt;&lt;P&gt;&amp;nbsp; ASSIGN lv_key TO &amp;lt;fk&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; WHILE lv_off &amp;lt; lv_len.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_char = json+lv_off(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************************&lt;/P&gt;&lt;P&gt;* IN STRING&lt;/P&gt;&lt;P&gt;**********************************************************************&lt;/P&gt;&lt;P&gt;* Character is in a string delimited by double quotes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF lv_instr = 'X'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF lv_char = '"'.&lt;/P&gt;&lt;P&gt;* Switch out of delimited character string&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF lv_pchar NE '\'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_instr = ' '.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONCATENATE &amp;lt;fk&amp;gt; lv_char INTO &amp;lt;fk&amp;gt; RESPECTING BLANKS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONCATENATE &amp;lt;fk&amp;gt; lv_char INTO &amp;lt;fk&amp;gt; RESPECTING BLANKS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************************&lt;/P&gt;&lt;P&gt;* OUTSIDE STRING&lt;/P&gt;&lt;P&gt;**********************************************************************&lt;/P&gt;&lt;P&gt;* Character is not in a string delimited by double quotes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* On opening character, shift level up&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF lv_char CA '{['.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD 1 TO lv_level.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* When the value is contained in a {}/[], the entire value must&lt;/P&gt;&lt;P&gt;* be passed to the next level of processing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF lv_level &amp;gt; 1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONCATENATE &amp;lt;fk&amp;gt; lv_char INTO &amp;lt;fk&amp;gt; RESPECTING BLANKS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF lv_char CA '[{'. "&amp;lt;- Chars ignored outside of str&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSEIF lv_char = ':'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASSIGN lv_value TO &amp;lt;fk&amp;gt;.&lt;/P&gt;&lt;P&gt;* The key collected up to now is assigned to the data member&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRANSLATE lv_key TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHIFT lv_key LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASSIGN COMPONENT lv_key OF STRUCTURE data TO &amp;lt;data&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* End of a key/value pair (we bump up against delimiter) - pass to next level&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSEIF ( lv_char = ',' OR lv_char = '}' ) AND lv_table = space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Process collected value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHIFT lv_value LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; json_to_data( EXPORTING json = lv_value CHANGING data = &amp;lt;data&amp;gt; ).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL FUNCTION 'ZFM_BPM_JSON_TO_DATA'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXPORTING&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; json = lv_value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CHANGING&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = &amp;lt;data&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Clear key and value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLEAR: lv_key, lv_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASSIGN lv_key TO &amp;lt;fk&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLEAR: lv_key, lv_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* End of a key/value pair (we bump up against delimiter) - pass to next level&lt;/P&gt;&lt;P&gt;* But in table mode, we pass an instance of a row of the table, and afterward&lt;/P&gt;&lt;P&gt;* add it to the table&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSEIF ( lv_char = ',' OR lv_char = ']' ) AND lv_table = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Process collected value&lt;/P&gt;&lt;P&gt;* Inside array in JSON, there are no keys, only list of values, the collected&lt;/P&gt;&lt;P&gt;* value is in lv_key&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHIFT lv_key LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL FUNCTION 'ZFM_BPM_JSON_TO_DATA'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXPORTING&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; json = lv_key&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CHANGING&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = &amp;lt;line&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* On return: if dealing with table, add the record to the table&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_ttd ?= lr_td.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF lr_ttd-&amp;gt;table_kind = cl_abap_tabledescr=&amp;gt;tablekind_sorted&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR lr_ttd-&amp;gt;table_kind = cl_abap_tabledescr=&amp;gt;tablekind_hashed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASSIGN data TO &amp;lt;sotab&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT &amp;lt;line&amp;gt; INTO TABLE &amp;lt;sotab&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASSIGN data TO &amp;lt;sttab&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APPEND &amp;lt;line&amp;gt; TO &amp;lt;sttab&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLEAR &amp;lt;line&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Clear key and value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLEAR: lv_key, lv_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASSIGN lv_key TO &amp;lt;fk&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLEAR: lv_key, lv_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Switch cursor into delimited string; consecutive characters&lt;/P&gt;&lt;P&gt;* are then treated as part of a key or value, even if they are&lt;/P&gt;&lt;P&gt;* special characters&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSEIF lv_char = '"'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_instr = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Other chars processed as either key or value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONCATENATE &amp;lt;fk&amp;gt; lv_char INTO &amp;lt;fk&amp;gt; RESPECTING BLANKS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* On closing character, shift level down again&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF lv_char CA '}]'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBTRACT 1 FROM lv_level.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* END: Are we in string or out?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_pchar = lv_char.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD 1 TO lv_off.&lt;/P&gt;&lt;P&gt;&amp;nbsp; ENDWHILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lokeswar Reddy Byni.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 07 Jun 2015 15:55:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124556#M1905040</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2015-06-07T15:55:42Z</dc:date>
    </item>
    <item>
      <title>Re: Converting Json table format data to ABAP internal table...???</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124557#M1905041</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mahesh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*I have a similar situation. Data in JSON format is in a array and I need to load into an internal table. Here is what i did.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Here is my data. In this case these is only one record in array and record has one field SYS_ID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;{"RESULT":[{"SYS_ID":"6BFCC98B2B583100BBB2DCB3E4DA15F8"}]}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Data type.&lt;/P&gt;&lt;P&gt;* If you have more than one field in array add those fields here.&lt;/P&gt;&lt;P&gt;types: begin of type_res,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys_id type string,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end of type_res.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* data structure&lt;/P&gt;&lt;P&gt;DATA: str_res TYPE type_res.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Internal Table.&lt;/P&gt;&lt;P&gt;data: result like TABLE OF str_res,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wa1 like LINE OF result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;fs1&amp;gt; type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Data object&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: out type ref to data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Create object parsee&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data: parsee type ref to CL_GIS_JSON_PARSER.&lt;/P&gt;&lt;P&gt;create object parsee.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; *Variable DAT contains the JSON data string. OUT is the data object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD parsee-&amp;gt;if_gis_parser~deserialize&lt;/P&gt;&lt;P&gt;&amp;nbsp; EXPORTING&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; native_string = dat&lt;/P&gt;&lt;P&gt;&amp;nbsp; changing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; abap_data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = out&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/P&gt;&lt;P&gt;assign out-&amp;gt;* to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ASSIGN COMPONENT 1 of STRUCTURE &amp;lt;fs1&amp;gt; to FIELD-SYMBOL(&amp;lt;fs2&amp;gt;) .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* &amp;lt;FS2&amp;gt; is pointing to internal table data from JSON array.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;result[] = &amp;lt;fs2&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Now you can read internal table 'result' and get the values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read TABLE result INDEX 1 into wa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write:/ wa1-sys_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It worked for me. I hope it will work for you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ashok&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Jul 2015 21:48:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/converting-json-table-format-data-to-abap-internal-table/m-p/11124557#M1905041</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2015-07-21T21:48:04Z</dc:date>
    </item>
  </channel>
</rss>

