JavaScript: personalizzare l'output di JSON.stringify() con il metodo toJSON() degli oggetti

JavaScript: personalizzare l'output di JSON.stringify() con il metodo toJSON() degli oggetti

In JavaScript possiamo personalizzare la rappresentazione di un oggetto come stringa JSON usando un metodo specifico degli oggetti.

Proprio come accade con il metodo toString(), se specifichiamo il metodo toJSON() in un oggetto, possiamo stabilire come questo oggetto verrà rappresentato dal metodo JSON.stringify().

Ad esempio:


'use strict';

class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    toJSON() {
        return { data: `${this.name} is ${this.age} years old.` };
    }
}

Questo metodo può restituire un oggetto o anche una sola proprietà dell'oggetto. Quando si usa JSON.stringify() accade questo:


'use strict';

const person = new Person('Sam', 30);
console.log(JSON.stringify(person)); // {"data": "Sam is 30 years old."}

Si tratta di una caratteristica che ci consente di avere maggior controllo sulla trasformazione di un oggetto in una stringa JSON.

Riferimenti

JSON.stringify()

Torna su