JSON.parse()
- Önceki Sayfa JSON Veri Türleri
- Sonraki Sayfa JSON Dizgileme
JSON'ın yaygın kullanımı web sunucusu ile veri iletişimidir.
Web sunucusundan veri aldığınızda, veriler her zaman bir dizedir.
Aracılığıyla JSON.parse()
Verileri çözümleyin, bu veriler JavaScript nesnesi haline gelecektir.
Örnek – JSON'Araştırma
Web sunucusundan aldığımız bu metni hayal edin:
'{ "name":"Bill Gates", "age":62, "city":"Seattle"}'
JavaScript fonksiyonunu kullanın: JSON.parse()
Metni JavaScript nesnesine dönüştürün:
var obj = JSON.parse('{ "name":"Bill Gates", "age":62, "city":"Seattle"}');
Bu metin JSON formatında yazılmamışsa, dilbilgisi hatası ortaya çıkabilir.
Sayfanızda JavaScript nesnesi kullanın:
Örnek
<p id="demo"></p> <script> document.getElementById("demo").innerHTML = obj.name + ", " + obj.age; </script>
Sunucudan gelen JSON
AJS kullanarak sunucudan JSON isteyebilirsiniz.
Sunucunun yanıtı JSON biçiminde yazılmışsa, bu dizesi JavaScript nesnesine dönüştürebilirsiniz.
Örnek
Verileri sunucudan XMLHttpRequest kullanarak almak için lütfen:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj.name; } }; xmlhttp.open("GET", "json_demo.txt", true); xmlhttp.send();
JSON'ın dizisi olarak
JSON'ın dizi kaynaklı kullanımında JSON.parse()
sonra, bu yöntem JavaScript nesnesi yerine JavaScript dizisi döner.
Örnek
Sunucudan dönen JSON dizidir:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myArr = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myArr[0]; } }; xmlhttp.open("GET", "json_demo_array.txt", true); xmlhttp.send();
İstisna
Tarih çözümleyin
JSON'da tarih nesneleri izin verilmez.
Tarih içerirseniz, dizge olarak yazın.
Daha sonra tarih nesnesine dönüştürebilirsiniz:
Örnek
Dizgeyi tarih olarak dönüştürün:
var text = '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}'; var obj = JSON.parse(text); obj.birth = new Date(obj.birth); document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
veya şunu kullanabilirsiniz JSON.parse()
Fonksiyonun ikinci parametresi, reviver.
Bu reviver Parametre bir fonksiyondur ve her özelliği döndürmeden önce kontrol eder.
Örnek
Dizgeyi tarih olarak dönüştürmek için reviver fonksiyonunu kullanın:
var text = '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}'; var 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;
Fonksiyonları çözümleyin
JSON'da fonksiyonlar izin verilmez.
Fonksiyon içerirseniz, onu dizge olarak yazın.
Daha sonra fonksiyona dönüştürebilirsiniz:
Örnek
Dizgeyi fonksiyona dönüştürün:
var text = '{ "name":"Bill Gates", "age":"function () {return 62;}", "city":"Seattle"}'; var obj = JSON.parse(text); obj.age = eval("(" + obj.age + ")"); document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();
JSON'da fonksiyon kullanmanızdan kaçınmalısınız, fonksiyonlar kendi etki alanlarını kaybeder ve ayrıca eval()
fonksiyonlara dönüştürün.
Tarayıcı Desteği
tüm popüler tarayıcılar ve en yeni ECMAScript (JavaScript) standartları içerir JSON.parse()
Fonksiyon:
Aşağıdaki tablo, tam olarak desteklenen JSON.parse()
Fonksiyonun ilk tarayıcı sürümü:
Evet | 8.0 | 3.5 | 4.0 | 10.0 |
Daha eski tarayıcılar için, aşağıdaki adreslerdeki JavaScript kütüphaneleri kullanılabilir:
- Önceki Sayfa JSON Veri Türleri
- Sonraki Sayfa JSON Dizgileme