Notwithstanding Precautions, Misadventure

    json-to-ast
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/json-to-ast package

    2.1.0 • Public • Published

    JSON AST parser

    NPM NPM downloads Requirements Travis-CI

    Install

    > npm install json-to-ast
    

    Usage

    const parse = require('json-to-ast');
     
    const settings = {
      // Appends location information. Default is <true>
      loc: true,
      // Appends source information to node’s location. Default is <null>
      source: 'data.json'
    };
     
    parse('{"a": 1}', settings);

    Output

    {
      type: 'Object',
      children: [
        {
          type: 'Property',
          key: {
            type: 'Identifier',
            value: 'a',
            raw: '"a"',
            loc: {
              start: { line: 1, column: 2, offset: 1 },
              end: { line: 1, column: 5, offset: 4 },
              source: 'data.json'
            }
          },
          value: {
            type: 'Literal',
            value: 1,
            raw: '1',
            loc: {
              start: { line: 1, column: 7, offset: 6 },
              end: { line: 1, column: 8, offset: 7 },
              source: 'data.json'
            }
          },
          loc: {
            start: { line: 1, column: 2, offset: 1 },
            end: { line: 1, column: 8, offset: 7 },
            source: 'data.json'
          }
        }
      ],
      loc: {
        start: { line: 1, column: 1, offset: 0 },
        end: { line: 1, column: 9, offset: 8 },
        source: 'data.json'
      }
    }

    Node types

    Object:

    {
      type: 'Object',
      children: <Property>[],
      loc?: Object
    }

    Property:

    {
      type: 'Property',
      key: <Identifier>,
      value: Object | Array | <Literal>,
      loc?: Object
    }

    Identifier:

    {
      type: 'Identifier',
      value: string,
      raw: string,
      loc?: Object
    }

    Array:

    {
      type: 'Array',
      children: (Object | Array | <Literal>)[],
      loc?: Object
    }

    Literal:

    {
      type: 'Literal',
      value: string | number | boolean | null,
      raw: string,
      loc?: Object
    }

    AST explorer

    Try it online on astexplorer.net

    License

    MIT

    Install

    npm i json-to-ast

    DownloadsWeekly Downloads

    343,559

    Version

    2.1.0

    License

    MIT

    Unpacked Size

    146 kB

    Total Files

    5

    Last publish

    Collaborators

    • vtrushin