Yukarıdaki nesneyi kullanarak JSON dönüştürmek, var jSonString = JSON.stringify(testObject);
2 (JS obj ve JSON) arasındaki fark nedir?
JSON bir veri değişim formatıdır. Sıralı listelerin ve sırasız haritaların, dize booleanlarının ve sayılarının bir dizede nasıl temsil edileceğini açıklayan bir standarttır. XML ve YAML gibi diller arasında yapılandırılmış bilgi aktarmanın bir yolu olduğu gibi JSON da aynıdır. Öte yandan bir JavaScript nesnesi fiziksel bir türdür. Tıpkı bir PHP dizisi, bir C ++ sınıfı / yapısı gibi, bir JavaScript nesnesi de JavaScript'in dahili bir türüdür.
İşte bir hikaye. Bir mağazadan biraz mobilya satın aldığınızı ve teslim edilmesini istediğinizi düşünelim. Ancak stokta kalan tek şey ekran modelidir, ancak satın almayı kabul edersiniz.
Dükkanda, satın aldığınız çekmeceli dolap yaşayan bir nesnedir:
var chestOfDrawers = {
color: "red",
numberOfDrawers: 4
}
Ancak, yazıya bir çekmece gönderemezsiniz, bu yüzden onu sökersiniz (okuyun, dizeleyin). Artık mobilya açısından faydasız. Şimdi JSON. Düz paket formunda.
{"color":"red","numberOfDrawers":4}
Aldığınızda, çekmeceli sandığı yeniden inşa edersiniz (okuyun, ayrıştırın). Şimdi bir nesne biçiminde geri döndü.
JSON / XML ve YAML'ın arkasındaki neden, verilerin programlama dilleri arasında her iki katılımcı dilin anlayabileceği bir biçimde aktarılmasını sağlamaktır; PHP veya C ++ 'a JavaScript nesnenize doğrudan veremezsiniz; çünkü her dil, kaputun altında farklı bir nesneyi temsil eder. Ancak, nesneyi JSON notasyonuna dizdiğimiz için; yani verileri temsil etmenin standart bir yolu , nesnenin JSON temsilini başka bir dil (C ++, PHP) iletebilir, nesnenin JSON temsilini temel alarak sahip olduğumuz JavaScript nesnesini kendi nesnesine yeniden oluşturabilirler .
JSON'un işlevleri veya tarihleri temsil edemeyeceğini belirtmek önemlidir. Bir nesneyi işlev üyesi ile dizgi yapmaya çalışırsanız, işlev JSON temsilinden çıkarılır. Tarih bir dizgiye dönüştürülecektir;
JSON.stringify({
foo: new Date(),
blah: function () {
alert('hello');
}
}); // returns the string "{"foo":"2011-11-28T10:21:33.939Z"}"