@abapify/asjson-parser
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

ABAP asJSON Parser

asJSON - Canonical JSON Representation

General asJSON format is based on %heap object delivering values and type metadata

So when we have a code like this:

REPORT ZTEST_HEAP.

start-of-selection.

types:
  begin of payload_ts,
    i type i,
    i_ref type ref to i,
  end of payload_ts.


  data(payload) = value payload_ts(
    i = 123
    i_ref = new #( 123 )
  ).

  data(json) = cl_sxml_string_writer=>create( if_sxml=>co_xt_json ).

  call transformation id
  source data = payload
        result xml json.

  cl_demo_output=>display_json( json = json->get_output( ) ).

the output it generates will be:

{
 "DATA":
 {
  "I":123,
  "I_REF":
  {
   "%ref":"#d1"
  }
 },
 "%heap":
 {
  "d1":
  {
   "%type":"xsd:int",
   "%val":123
  }
 }

The following library allows us to parse this payload as if we would deal with a regular ABAP object without data references

The code below

import { parse } from '@abapify/asjson-parser';
const parser;
console.log(parse(json));

would print the object like this:

{
 "DATA":
 {
  "I":123,
  "I_REF": 123
 }

Usage

  • as a parser
import { parse } from '@abapify/asjson-parser';
console.log(parse(json));
  • as a transformer
import { transform } from '@abapify/asjson-parser';
const object = JSON.parse(json);
console.log(transform(object));
  • as a proxy (returns a proxied object)
import { proxy } from '@abapify/asjson-parser';
const object = JSON.parse(json);
console.log(proxy(object));

Readme

Keywords

none

Package Sidebar

Install

npm i @abapify/asjson-parser

Weekly Downloads

0

Version

0.1.1

License

none

Unpacked Size

5.73 kB

Total Files

8

Last publish

Collaborators

  • theplenkov-npm