jsonolt

5.1.0 • Public • Published

encode JSON data as ordered, labeled trees

JSON data is tree-like, but a lot of computer science literature on trees works on a slightly different formal structure: so-called "ordered, labeled trees" (OLTs). This package uniformly converts JSON-compatible data structures to and from slightly larger JSON-compatible structures that are easy to process as ordered, labeled trees.

Usage

var jsonolt = require('jsonolt')
var assert = require('assert')

var example = {
  a: 'x',
  b: null,
  c: [42]
}

assert.deepStrictEqual(
  jsonolt.encode(example),
  {
    path: [],
    label: {type: 'object'},
    children: [
      {
        path: ['a'],
        label: {type: 'key', value: 'a'},
        children: [
          {
            path: ['a'],
            label: {type: 'string', value: 'x'}
          }
        ]
      },
      {
        path: ['b'],
        label: {type: 'key', value: 'b'},
        children: [
          {
            path: ['b'],
            label: {type: 'null', value: null}
          }
        ]
      },
      {
        path: ['c'],
        label: {type: 'key', value: 'c'},
        children: [
          {
            path: ['c'],
            label: {type: 'array'},
            children: [
              {
                path: ['c', 0],
                label: {type: 'number', value: 42}
              }
            ]
          }
        ]
      }
    ]
  }
)

assert.deepEqual(
  jsonolt.decode(jsonolt.encode(example)),
  example
)

Licensing

This package is free to use in open source under the terms of Parity Public License.

Licenses for use in closed software are available via licensezero.com.

licensezero.com pricing

/jsonolt/

    Package Sidebar

    Install

    npm i jsonolt

    Weekly Downloads

    1

    Version

    5.1.0

    License

    SEE LICENSE IN LICENSE

    Unpacked Size

    12.9 kB

    Total Files

    9

    Last publish

    Collaborators

    • kemitchell