La JavaScript Object Notation è un formato per lo scambio di dati. In JavaScript esiste la classe JSON che espone dei metodi per leggere / convertire il JSON.
Un valore espresso in JSON è una stringa che non può contenere commenti nè virgole finali negli array e oggetti.
JSON.parse()
Il metodo JSON.parse() prende in ingresso come parametro una stringa di JSON, la analizza e la converte in valori:
var stringaJSON = '{"nome":"Mario","cognome":"Rossi","anni":20,"amici":["Luca","Giovanni"],"uomo":true,"lavoro":null,"stipendio":0,"sorella":{"nome":"Maria","cognome":"Rossi"}}';
var stringaConvertita = JSON.parse(stringaJSON);
console.log(stringaConvertita);
//{
// nome: "Mario",
// cognome: "Rossi",
// anni: 20,
// amici: ["Luca", "Giovanni"],
// uomo: true,
// lavoro: null,
// stipendio: 0,
// sorella: {
// nome: "Maria",
// cognome: "Rossi"
// }
}
JSON.stringify()
Il metodo JSON.stringify() prende in ingresso come parametro un valore JavaScript e la trasforma in una stringa JSON:
var oggetto = {
nome: "Mario",
cognome: "Rossi",
anni: 20,
amici: ["Luca", "Giovanni"],
uomo: true,
lavoro: null,
stipendio: 0,
sorella: {
nome: "Maria",
cognome: "Rossi"
}
}
var oggettoConvertito = JSON.stringify(oggetto);
console.log(oggettoConvertito); //{"nome":"Mario","cognome":"Rossi","anni":20,"amici":["Luca","Giovanni"],"uomo":true,"lavoro":null,"stipendio":0,"sorella":{"nome":"Maria","cognome":"Rossi"}}
//sintassi scorretta:
var arr = [1, 2, 3,]; //la virgola dopo il 3 non ci va
//Attenzione!!
JSON.stringify({
nome: 'Mario',
cognome: null,
anni: undefined, //gli undefined sono ignorati
});
// {"nome":"Mario","cognome":null}