conversify is a package that represents an advanced implementation of JSON.stringify
method.
It allows you to convert JSON unsupported values to string correctly.
Such as Date
value, +/-Infinity
, undefined
, NaN
and function realization in Array
or Object
.
npm install conversify
const conversify = require('conversify');
const stringifiedObj = conversify({
name: 'Ivan',
surname: 'Ivanov',
fullname() {
return `${this.name} ${this.surname}`
},
birthday: new Date('1999-05-02')
}, 4); //Second argument is optional. It used to insert white space into the output JSON string for readability purposes.
console.log(stringifiedObj);
/*
* Output:
* {
* "name": "Ivan",
* "surname": "Ivanov",
* "fullname": function () {
* return `${this.name} ${this.surname}`;
* },
* "birthday": new Date('1999-05-02T00:00:00.000Z')
* }
*/
Array that will be used for comparison two methods (JSON.strinigfy
and conversify
):
const testArr = [
NaN,
undefined,
null,
new Date(),
Date(),
new Date('2020-02-01'),
new Date('abcd'),
'some text',
3.14,
15845,
-Infinity,
Infinity,
() => console.log(`It's function body`),
{
name: 'Ivan',
surname: 'Ivanov',
fullname () {
return `${this.name} ${this.surname}`;
},
birthday: new Date('1999-05-02'),
},
];
Result:
JSON.stringify |
conversify |
---|---|
![]() |
![]() |
conversify package is open-sourced software licensed under the MIT License (MIT). Please see License File for more information.
Detailed changes for each release are documented in the release notes.
I'm thanks all the people who contributed or who want to contribute to conversify.
If you want to contribute, make sure that read the Contributing Guide before making a pull request, thanks.
If you still have questions about the work of this package ❔ or you have cool ideas for it improvement 💥, please write to me 📧.
If you find a bug 🐛, please create an appropriate issue with detailed information about it 💬.
Thanks!