funJSON
- JSON with functions (methods)
Implemented using eval
, don't parse untrusted JSON!
Implementation of reviver and replacer functions for JSON parser to stringify, detect and parse methods as strings.
Works in browser and node, no dependencies.
Installation
In a browser just load a script:
<script src="https://cdn.jsdelivr.net/npm/funjson/browser/funJSON.min.js"></script>
Using npm:
npm i --save funjson
const funJSON = require('funjson');
or
import { stringify, stringifyToScript, parse } from 'funjson';
Basic Usage
var obj = {
a:{
a1:'a1',
fa:function(name){
return 'fa Hello ' + name;
}
},
b:{
b1:'b1'
},
f:(name) => {
return 'f Hello ' + name;
}
};
var str = funJSON.stringify(obj,null,2);
console.log('JSON:',str);
var obj2 = funJSON.parse(str);
obj2.f('obj');
obj2.a.fa('obj.a');
str = funJSON.stringifyToScript(obj,null,2);
console.log('JS:',str);
eval('obj2 = '+str);
obj2.f("obj");
obj2.a.fa("obj.a");
funJSON.*
- parse(text[,reviver]):object - parses JSON string into object with methods.
- text - JSON string
- reviver(key, value) - optional function to customize deserialization.
- stringify(value[, replacer[, space]]):string - serializes object with methods into string.
- value - object to serialize
- replacer(key, value) - optional function or array with white list to use instead of default replacer.
- space - optional, defines how many spaces to use for pretty JSON indentation.
- stringifyToScript(value[, replacer[, space]]):string - serializes object with methods into string script. Functions serialized as is, not wrapped into quots.
- value - object to serialize
- replacer(key, value) - optional function to use instead of default replacer.
- space - optional, defines how many spaces to use for pretty JSON indentation.
Any feedback is welcome.