https://github.com/disjukr/lon
loopable notation
https://github.com/disjukr/lon
Last synced: about 1 month ago
JSON representation
loopable notation
- Host: GitHub
- URL: https://github.com/disjukr/lon
- Owner: disjukr
- Created: 2016-06-07T06:55:31.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-07-03T16:28:16.000Z (almost 9 years ago)
- Last Synced: 2025-03-29T11:43:28.729Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 13.7 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# lon
lon is another json that supports:
* array holes
* circular references
* `NaN`, `Infinity`, `-Infinity`
* distinguish `undefined` from `null`
* distinguish `-0` from `0`## install
```sh
npm install lon
```## usage
```javascript
var LON = require('lon');
var a = [{foo: 'bar'}, undefined, null, 0, -0, ,];
a.push(a);console.log(LON.stringify(a)); // '[1,u,n,4,5,,0,],{2:3},"foo","bar",0,-0'
require('assert').deepStrictEqual(a, LON.parse(LON.stringify(a))); // ok
```### class instance
```javascript
var assert = require('assert');
var LON = require('lon');function A(a, b) {
this.a = a;
this.b = b;
this.c = this;
}var a = new A(1, 2);
var str = LON.stringify(a, {A: A}); // 'A{1:2,3:4,5:0},"a",1,"b",2,"c"'
var obj = LON.parse(str, {A: A});assert(obj instanceof A); // ok
assert.equal(obj.a, 1); // ok
assert.equal(obj.b, 2); // ok
assert.deepStrictEqual(a, obj); // ok
```## license
distributed under the zlib license