JSON .parse()
Un uso comune di JSON è lo scambio di dati da/verso un server web.
Quando si ricevono dati da un server web, i dati sono sempre una stringa.
Analizza i dati con JSON.parse()
e i dati diventano un oggetto JavaScript.
Esempio: analisi JSON
Immagina di aver ricevuto questo testo da un server web:
'{"name":"John", "age":30, "city":"New York"}'
Usa la funzione JavaScript JSON.parse()
per convertire il testo in un oggetto JavaScript:
const obj = JSON.parse('{"name":"John", "age":30, "city":"New
York"}');
Assicurati che il testo sia in formato JSON, altrimenti otterrai un errore di sintassi.
Usa l'oggetto JavaScript nella tua pagina:
Esempio
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = obj.name;
</script>
Matrice come JSON
Quando si utilizza JSON.parse()
su un JSON derivato da un array, il metodo restituirà un array JavaScript, invece di un oggetto JavaScript.
Esempio
const text = '["Ford", "BMW", "Audi", "Fiat"]';
const myArr = JSON.parse(text);
Eccezioni
Date di analisi
Gli oggetti Date non sono consentiti in JSON.
Se devi includere una data, scrivila come una stringa.
Puoi riconvertirlo in un oggetto data in un secondo momento:
Esempio
Converti una stringa in una data:
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text);
obj.birth = new Date(obj.birth);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
Oppure, puoi utilizzare il secondo parametro, della JSON.parse()
funzione, chiamato vitality .
Il parametro Reviver è una funzione che controlla ogni proprietà, prima di restituire il valore.
Esempio
Converti una stringa in una data, usando la funzione ravviva :
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text, function (key, value) {
if
(key == "birth") {
return new
Date(value);
} else {
return value;
}
});
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
Funzioni di analisi
Le funzioni non sono consentite in JSON.
Se devi includere una funzione, scrivila come una stringa.
Puoi riconvertirlo in una funzione in un secondo momento:
Esempio
Converti una stringa in una funzione:
const text =
'{"name":"John", "age":"function () {return
30;}", "city":"New York"}';
const obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");
document.getElementById("demo").innerHTML = obj.name + ", " +
obj.age();
Dovresti evitare di usare le funzioni in JSON, le funzioni perderanno il loro ambito e dovresti usarle eval()
per riconvertirle in funzioni.