I need to serialize and deserialize JavaScript objects to store them in a DB.
Note that these objects contain functions, so I can’t store them as JSON, so I can’t use json2.js.
What’s the state of the art in [de]serialization of JavaScript objects (in JavaScript of course).
In general, there’s no way (in a browser) to serialize objects with functions attached to them: Every function has a reference to its outer scope, that scope won’t exist when you deserialize it, so serialized references to that scope will be invalid.
What I would do is use the built-in (or json2.js)
JSON.stringifyandJSON.parsefunctions with thereplacerandreviverparameters. Here’s a partial example of how it would work:You can use any serialization format you want in your custom types. The "LatLng(latitude,longitude)" format is just one way of doing it. You could even return a JavaScript object that can be serialized to JSON natively.