JSON.stringify là một trong những function mà bất kể ai làm JS đều biết. Tuy nhiên chúng ta (có lẽ) thường dùng nó như thế này JSON.stringify(data), hoặc thế này JSON.stringify(obj) vớiobj.toJSON = function() {}.  Trong phần lớn các trường hợp thì 2 cách trên có vẻ đã đủ. Tuy nhiên chúng ta hãy xem xét một vài thứ mà chúng ta thường ít khi sử dụng với JSON.stringify.

Param thứ 2

Param thứ 2 cho phép chúng ta truyền vào một function. Khi JSON.stringify duyệt qua từng item của obj, js engine sẽ lấy cái item đó truyền vào cái function này và nếu nó return undefined thì JSON.stringify sẽ skip cái item khi output ra nhé.

const user = {
 "name" : "Prateek Singh",
 "age" : 30
}

JSON.stringify(user, (key, value) => {
    if (key === 'name') {
        return undefined;
    }
    return value;
})

//Result 
{"age":30}

Param thư 3

Param thứ 3 cho phép chúng ta tạo ra chuỗi JSON đẹp hơn, dễ đọc hơn. Nếu bạn truyền vào một number thì JSON.stringify sẽ indent output của bạn.  Nó sẽ giống như thế này nhé.

const user = {
 "name" : "Prateek Singh",
 "age" : 26,
 "roles" : ["admin", "editor"]
}

JSON.stringify(user, null, 4)

//Result
{
    "name": "Prateek Singh",
    "age": 26,
    "roles": [
        "admin",
        "editor"
    ]
}

Còn nếu chúng ta truyền vào 1 ký tự nào đó kết quả càng ấn tượng hơn nữa.

const user = {
 "name" : "Prateek Singh",
 "age" : 26,
 "roles" : ["admin", "editor"]
}

JSON.stringify(user, null, "*<>*")

{
*<>*"name": "Prateek Singh",
*<>*"age": 26,
*<>*"roles": [
*<>**<>*"admin",
*<>**<>*"editor"
*<>*]
}