Si está utilizando versiones ES6 de nodo, puede comprobar fuera de un pequeño paquete que escribí llamado JSOFF. Es el formato de función de objeto de JavaScript; un reemplazo directo para JSON que maneja funciones.
Es super pequeño y simple, por lo que Babeljs o Browserify pueden ser tus amigos.
Instalar a través de: npm install jsoff
o yarn add jsoff
.
Aquí está el ejemplo de cómo crear un objeto con funciones:
const JSOFF = require('jsoff');
var obj = {
abc: 123,
def: function (a,b) { return a * 2 + b * 3; },
ghi: a => { return a * 2 },
jkl: (a,b) => { return ((d,e) => { return a*d + b*e })(2,4) }
};
var str = JSOFF.stringify(obj);
// str is now:
// '{"abc":123,"def":"function (a,b) { return a * 2 + b * 3; }","ghi":"a => { return a * 2 }","jkl":"(a,b) => { return ((d,e) => { return a*d + b*e })(2,4) }"}');
});
var clone = JSOFF.parse(str);
clone.def(10,5) // 35
clone.ghi(5) // 10
clone.jkl(10,20) // 100
Por qué no puedes usar JSON? – Zoidberg
Si un objeto javascript contiene funciones (es decir, métodos), entonces no hay forma de codificar esos en JSON. JSON solo maneja objetos JS con datos puros (hashes, arrays y tipos primitivos). –
Específicamente: necesito almacenar un objeto DirectionsResult desde la API de JavaScript de Google Maps. DirectionsResult contiene LatLng * objects * que tienen funciones que no maneja JSON: http://code.google.com/apis/maps/documentation/javascript/reference.html#LatLng –