JSON .parse()
JSON'un yaygın bir kullanımı, bir web sunucusuna/sunucudan veri alışverişi yapmaktır.
Bir web sunucusundan veri alırken, veriler her zaman bir dizedir.
Verileri ile ayrıştırın ve veriler JSON.parse()
bir JavaScript nesnesi haline gelir.
Örnek - JSON'u Ayrıştırma
Bu metni bir web sunucusundan aldığımızı düşünün:
'{"name":"John", "age":30, "city":"New York"}'
JSON.parse()
Metni bir JavaScript nesnesine dönüştürmek için JavaScript işlevini kullanın :
const obj = JSON.parse('{"name":"John", "age":30, "city":"New
York"}');
Metnin JSON biçiminde olduğundan emin olun, aksi takdirde bir sözdizimi hatası alırsınız.
Sayfanızda JavaScript nesnesini kullanın:
Örnek
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = obj.name;
</script>
JSON olarak dizi
JSON.parse()
Bir diziden türetilen on bir JSON'u kullanırken , yöntem bir JavaScript nesnesi yerine bir JavaScript dizisi döndürür.
Örnek
const text = '["Ford", "BMW", "Audi", "Fiat"]';
const myArr = JSON.parse(text);
istisnalar
Ayrıştırma Tarihleri
JSON'da tarih nesnelerine izin verilmez.
Bir tarih eklemeniz gerekiyorsa, onu bir dize olarak yazın.
Daha sonra tekrar bir tarih nesnesine dönüştürebilirsiniz:
Örnek
Bir dizeyi tarihe dönüştürün:
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;
JSON.parse()
Veya işlevin reviver adlı ikinci parametresini kullanabilirsiniz .
Reviver parametresi, değeri döndürmeden önce her özelliği kontrol eden bir fonksiyondur .
Örnek
Reviver işlevini kullanarak bir dizeyi tarihe dönüştürün :
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;
Ayrıştırma Fonksiyonları
JSON'da işlevlere izin verilmez.
Bir işlev eklemeniz gerekiyorsa, onu bir dize olarak yazın.
Daha sonra tekrar bir işleve dönüştürebilirsiniz:
Örnek
Bir dizeyi bir işleve dönüştürün:
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();
JSON'da işlevleri kullanmaktan kaçınmalısınız, işlevler kapsamlarını kaybeder ve eval()
bunları işlevlere geri dönüştürmek için kullanmanız gerekir.