SORU
20 EKİM 2010, ÇARŞAMBA


Ne JSON ve JavaScript nesne arasındaki farklar?

JSON ve JavaScript nesne için yeni duyuyorum.

  • Herkes JSON ve JavaScript nesne arasındaki farklar lütfen açıklayabilir mi?
  • Kullanımları nelerdir?
  • Biri diğerinden daha iyi mi? ya da duruma göre değişir?
  • Ne zaman hangisini kullanmak için ne durumda?
  • Neden JSON ilk etapta oluşturuldu? Neydi asıl amaç?
  • Birisi bir nesne JavaScript JSON yerine kullanmalısınız örnekler verin ya da tam tersi?

CEVAP
20 EKİM 2010, ÇARŞAMBA


Öncelikle JSON nedir bilmeniz gerekir:

  • dil agnostikveri değişim biçimi.

JSON sözdizimi JavaScript Object Literal gösterimde tarafından ilham kaynağı oldu, ama aralarında farklar vardır.

JSON örneğinanahtarlarıalıntı olmalıdır, nesne harfleri bu gerekli değildir:

// JSON:
{ "foo": "bar" }

// Object literal:
var o = { foo: "bar" };

Tırnak üzerinde JSON JavaScript (daha tam olarak ECMA 3. çünkü zorunlu Baskı), kullanımıayrılmış sözcüklerözellik adları izin verilmeyen olarak, örneğin:

var o = { if: "foo" }; // SyntaxError in ES3

Bir dize özellik adı (özellik adı alıntı) gibi değişmez kullanırken herhangi bir sorun verir:

var o = { "if": "foo" }; 

Böylece için< . em^"" . uyumluluk (ve belki de kolay para eval?) tırnak zorunludur.

JSON veri tipleri de aşağıdaki değerler kullanılabilir:

  • string
  • number
  • object
  • array
  • Harf olarak:
    • true
    • false
    • null

Strings değişiklikler bilgisinivarayrılmışçift tırnakJavaScript ise, tek kullanımlık ya da tırnak yerine çift.

// Invalid JSON:
{ "foo": 'bar' }

Numbers kabul JSON dilbilgisi de, JavaScript ile Onaltılık Rakamları kullanabilirsiniz, Örneğin değişiklikler 0xFF ya (rezil) Sekizli Rakamları örneğin 010. JSON sadece Ondalık Rakamları kullanabilirsiniz.

// Invalid JSON:
{ "foo": 0xFF }

Sekizli rakamları yanlış, *örneğin 21* SyntaxError üretilmesine izin verilen bazı hatalı uygulamalar (Firefox 3.5 , IE8 , json2.js vardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amena

    Amena

    15 Kasım 2006
  • androidandme

    androidandme

    10 Mart 2009
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007