66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# node-stringify
|
|
|
|
  
|
|
|
|
Stringify javascript objects and retrieve with `eval`.
|
|
|
|
## Important notes
|
|
This library **IS NOT** designed to replace `JSON.stringify`. Unless you truly understand what this library does, I suggest you use `JSON.stringify` in the first place.
|
|
|
|
## Install
|
|
|
|
```
|
|
npm install node-stringify --save
|
|
```
|
|
|
|
## Example
|
|
|
|
``` javascript
|
|
var stringify = require('node-stringify');
|
|
|
|
console.assert(stringify(123) === '123');
|
|
|
|
console.assert(stringify('abc') === '\'abc\'');
|
|
|
|
console.assert(stringify(null) === 'null');
|
|
|
|
console.assert(stringify(undefined) === 'undefined');
|
|
|
|
console.assert(stringify(new Date(1000)) === 'new Date(1000)');
|
|
|
|
console.assert(stringify(function (a,b,c) {}) === '(function (a,b,c) {})');
|
|
|
|
console.assert(stringify([1, 2, 3]) === '[1,2,3]');
|
|
|
|
// The parenthesis is to make the result work with `eval`
|
|
console.assert(stringify({a: 1, b: 2}) === '({a:1,b:2})');
|
|
|
|
console.assert(stringify({a: 1, b: [2, 3]}) === '({a:1,b:[2,3]})');
|
|
|
|
// You can turn off the parenthesis too
|
|
console.assert(stringify({a: 1, b: 2}, {parenthesis:false}) === '{a:1,b:2}');
|
|
|
|
console.assert(stringify({a: 1, b: [2, 3]}, {parenthesis:false}) === '{a:1,b:[2,3]}');
|
|
```
|
|
|
|
## Supported types
|
|
|
|
- null
|
|
- undefined
|
|
- number
|
|
- string
|
|
- date
|
|
- regexp
|
|
- function
|
|
- array
|
|
- object
|
|
|
|
## Difference with `JSON.stringify`
|
|
- The result of `node-stringify` can be retrieved directly using `eval`(Please be aware that `eval` may be insecure).
|
|
|
|
## Known issues
|
|
- Not support objects with circular references or too deeply nested(implemented in a recursive way).
|
|
|
|
## License
|
|
MIT License.
|