JSON.parse()

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>

Kişisel olarak deneyin

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();

Kişisel olarak deneyin

json_demo.txt'yi görüntüle

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();

Kişisel olarak deneyin

json_demo_array.txt'yi kontrol edin

İ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;

Kişisel olarak deneyin

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;

Kişisel olarak deneyin

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();

Kişisel olarak deneyin

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:

https://github.com/douglascrockford/JSON-js