Il secondo parametro può essere una funzione per eseguire la sostituzione durante la stringa.
partire in Firefox 3.5.4, JSON.stringify() offre ulteriori funzionalità di personalizzazione attraverso l'utilizzo di parametri opzionali. La sintassi è:
jsonString = JSON.stringify (valore [, sostituto [spazio]])
valore l'oggetto JavaScript per convertire in una stringa JSON.
sostituto Una funzione che altera il comportamento del processo in stringa, o una matrice di stringa e numero di oggetti che servono come una lista bianca per selezionando il proprietà dell'oggetto valore da includere nella stringa JSON . Se questo valore è nullo o non fornito, tutte le proprietà di l'oggetto sono incluse nella stringa JSON risultante.
spazio Un oggetto stringa o numero utilizzato per inserire spazi bianchi nell'output stringa JSON a fini di leggibilità. Se questo è un numero, lo indica il numero di caratteri dello spazio da utilizzare come spazio bianco; questo numero è limitato a 10 se è più grande di quello. Valori inferiori a 1 indicano che non è necessario utilizzare spazio. Se si tratta di una stringa, la stringa (oi primi 10 caratteri della stringa, se è più lunga di quella) viene utilizzata come spazio bianco. Se questo parametro non viene fornito (o è null), non viene utilizzato alcuno spazio bianco. Il parametro replacer
Il parametro replacer può essere una funzione o una matrice. Come funzione , sono necessari due parametri, la chiave e il valore sono stati specificati. L'oggetto in cui è stata trovata la chiave viene fornito come sostituto questo parametro.Inizialmente viene chiamato con una chiave vuota che rappresenta l'oggetto da stringificare e quindi viene chiamato per ogni proprietà sull'oggetto o sull'array che viene sottoposto a stringa. Dovrebbe restituire il valore che deve essere aggiunto alla stringa JSON, come segue:
Se si restituisce un numero, la stringa corrispondente a quel numero è utilizzato come valore per la proprietà quando aggiunto alla stringa JSON. Se si restituisce una stringa, tale stringa viene utilizzata come valore della proprietà quando viene aggiunta alla stringa JSON. Se si restituisce un valore booleano, "true" o "false" viene utilizzato come valore della proprietà, a seconda dei casi, quando si aggiunge alla stringa JSON. Se si restituisce qualsiasi altro oggetto, l'oggetto è ricorsivamente stringa nella stringa JSON, chiamando la funzione replacer su ogni proprietà, a meno che l'oggetto non sia una funzione, in cui la stringa non viene aggiunta alla stringa JSON. Se si restituisce undefined, la proprietà non è inclusa nella stringa JSON di output. Nota: non è possibile utilizzare la funzione replacer per rimuovere i valori da una matrice. Se si restituisce undefined o una funzione, viene invece utilizzato null.
Esempio