JavaScript Serializzare un valore


Esempio

Un valore JavaScript può essere convertito in una stringa JSON utilizzando la funzione JSON.stringify .

JSON.stringify(value[, replacer[, space]])
  1. value Il valore da convertire in una stringa JSON.
/* Boolean */  JSON.stringify(true)             // 'true'
/* Number  */  JSON.stringify(12)               // '12'
/* String  */  JSON.stringify('foo')            // '"foo"'
/* Object  */  JSON.stringify({})               // '{}'
               JSON.stringify({foo: 'baz'})     // '{"foo": "baz"}'
/* Array   */  JSON.stringify([1, true, 'foo']) // '[1, true, "foo"]'
/* Date    */  JSON.stringify(new Date())       // '"2016-08-06T17:25:23.588Z"'
/* Symbol  */  JSON.stringify({x:Symbol()})     // '{}'
  1. replacer Una funzione che altera il comportamento del processo di stringificazione o una matrice di oggetti String e Number che fungono da whitelist per filtrare le proprietà dell'oggetto value da includere nella stringa JSON. Se questo valore è nullo o non viene fornito, tutte le proprietà dell'oggetto sono incluse nella stringa JSON risultante.
// replacer as a function
function replacer (key, value) {
    // Filtering out properties
    if (typeof value === "string") {
        return
    }    
    return value
}

var foo = { foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7 }
JSON.stringify(foo, replacer)
// -> '{"week": 45, "month": 7}'
// replacer as an array
JSON.stringify(foo, ['foundation', 'week', 'month'])
// -> '{"foundation": "Mozilla", "week": 45, "month": 7}'
// only the `foundation`, `week`, and `month` properties are kept
  1. space Per la leggibilità, il numero di spazi utilizzati per il rientro può essere specificato come terzo parametro.
JSON.stringify({x: 1, y: 1}, null, 2)  // 2 space characters will be used for indentation
/* output:
    {
      'x': 1,
      'y': 1
    }
*/

In alternativa, è possibile fornire un valore stringa da utilizzare per il rientro. Ad esempio, il passaggio di '\t' causerà l'uso del carattere di tabulazione per il rientro.

JSON.stringify({x: 1, y: 1}, null, '\t')
/* output:
    {
        'x': 1,
        'y': 1
    }
*/