A JSON polyfill for older JavaScript platforms, providing spec-compliant parse and stringify functions.
JSON 3 is a deprecated JavaScript library that provided a polyfill for the JSON object in older environments lacking native support. It implemented the `JSON.parse()` and `JSON.stringify()` methods according to the ECMAScript specification, ensuring consistent JSON handling across different platforms and fixing date serialization issues present in some native implementations.
Developers maintaining legacy web applications or JavaScript projects that need to run on older browsers or environments without native JSON support, such as Internet Explorer 6-7 or early versions of Node.js.
It offered a reliable, spec-compliant alternative to native JSON with enhanced security through its recursive descent parser and corrected date serialization bugs, making it a trusted solution for cross-platform compatibility before native JSON became universally available.
A JSON polyfill. No longer maintained.
Implements JSON.parse() and JSON.stringify() strictly according to the ECMAScript specification, ensuring consistent behavior across diverse environments as highlighted in the README.
Uses a recursive descent parser instead of eval, enhancing security on older platforms vulnerable to injection attacks, a key feature noted in the project description.
Correctly serializes dates to simplified ISO 8601 strings, overriding buggy native Date#toJSON() implementations, which is explicitly addressed in the README's date serialization section.
Works in web browsers back to IE6, CommonJS environments like Node.js 0.6.21+, and JavaScript engines such as Rhino, as documented in the compatibility list.
The project is officially deprecated with no maintenance, meaning no bug fixes, security patches, or updates, as warned in the prominent banner at the top of the README.
Admits to being slower on older platforms compared to JSON 2 due to its recursive descent parser, which can impact performance-critical applications.
With native JSON now universally available in modern environments, its utility is confined to legacy systems, making it irrelevant for new development.
Requires careful handling with AMD loaders to avoid conflicts, and the noConflict() method is needed to restore global objects, adding setup overhead.
😎 Awesome lists about all kinds of interesting topics
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
A book series (2 published editions) on the JS language.
Clean Code concepts adapted for JavaScript
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.