You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
... Fakat geliştirme esnasında yeni özellikler eklendi ve öncekiler ya silindi ya da isim değiştirdi. Böyle bir durumda `toString` metoduyla her zaman değişiklik yapmak oldukça zordur. Özellikleri döngüye sokup buradan değerler alınabilir. Bu durumda da iç içe objelere ne olacak? Bunlarında çevirimlerini yapmak gerekir. Ayrıca ağ üzerinden objeyi göndermeye çalıştığınızda ayrıca bu objenin alan yer tarafından nasıl okunacağına dair bilgi göndermek zorundasınız.
25
25
26
-
Neyseki bunların hiçbiri için kod yazmaya gerek yok. Bu problem bizim için çözülmüş durumda.
26
+
Neyse ki bunların hiçbiri için kod yazmaya gerek yok. Bu problem bizim için çözülmüş durumda.
27
27
28
28
[cut]
29
29
30
30
## JSON.stringify
31
31
32
-
[JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation) genelde objelerin değerlerini ifade eder.[RFC 4627](http://tools.ietf.org/html/rfc4627) standardında tanımı yapılmıştır. Öncelikle JavaScript düşünülerek yapılmış olsa da birçok dil de kendine has kütüphanelerle JSON desteği vermektedir. Böylece client JavaScript kullanırken server Ruby/PHP/Java/Herneyse... kullansa bile JSON kullanımında bir sorun oluşturmaz.
32
+
[JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation) genelde objelerin değerlerini ifade eder.[RFC 4627](http://tools.ietf.org/html/rfc4627) standardında tanımı yapılmıştır. Öncelikle JavaScript düşünülerek yapılmış olsa da birçok dil de kendine has kütüphanelerle JSON desteği vermektedir. Böylece client JavaScript kullanırken server Ruby/PHP/Java/Her neyse... kullansa bile JSON kullanımında bir sorun oluşturmaz.
33
33
34
34
JavaScript aşağıdaki metodları destekler:
35
35
@@ -68,7 +68,7 @@ alert(json);
68
68
```
69
69
`JSON.stringify(ogrenci)` metodu objeyi alır ve bunu karaktere çevirir, buna *Json-kodlanmış* , *seri hale getirilmiş* veya *karakter haline getirilmiş* denir. Bunu ağ üzerinden karşı tarafa göndermek veya basit bir şekilde kaydetmek mümkündür.
70
70
71
-
JSON kodlanmış objenin normal obje ile arasında bir kaç tane önemli farklılık vardır:
71
+
JSON kodlanmış objenin normal obje ile arasında birkaç tane önemli farklılık vardır:
72
72
73
73
- Karakterler çift tırnak kullanır. JSON'da tek tırnak veya ters tırnak kullanılmaz. Bundan dolayı `'Ahmet'` -> `"Ahmet"` olur.
74
74
- Obje özelliklerinin isimleri de çift tırnak içinde alınır. Bu da zorunludur. Bundan dolayı `yas:30` , `"yas":30` olur.
JSON sadece veriyi tanımlayan diller arası bir şartname bulunmaktadır. Bundan dolayı Javascript'e özel obje özelliklerikleri `JSON.stringify` tarafından pas geçilir.
101
+
JSON sadece veriyi tanımlayan diller arası bir şartname bulunmaktadır. Bundan dolayı JavaScript'e özel obje özelliklerikleri `JSON.stringify` tarafından pas geçilir.
Burada çok sıkı kullandık. Özellik listesi tüm yapı için kullanıldı. Bundan ddolayı katılımcılar boş döndür, `adi` alanı da istenseydi bu durumda değer gelecekti.
210
+
Burada çok sıkı kullandık. Özellik listesi tüm yapı için kullanıldı. Bundan dolayı katılımcılar boş döndür, `adi` alanı da istenseydi bu durumda değer gelecekti.
211
211
212
212
Dairesel referansa neden olabilecek `oda.dolduruldu` hariç hepsini içermek isterseniz:
Şimdi ise `dolduruldu` hariç her yer seri haline getirildi. Fakat özelliklerin listesi oldukça büyük oldu.
238
238
239
-
Neyseki`degistirici` yerine fonksiyon kullanılabilir.
239
+
Neyse ki`degistirici` yerine fonksiyon kullanılabilir.
240
240
241
-
Bu fonksiyon her `(anahtar, deger)` ikilisi için çağırılabilir ve "değiştirilmiş" değeri çevirir, bu da orjinalinin yerine geçer.
241
+
Bu fonksiyon her `(anahtar, deger)` ikilisi için çağırılabilir ve "değiştirilmiş" değeri çevirir, bu da orijinalinin yerine geçer.
242
242
243
243
Daha önce yaptığımız örnekte `dolduruldu` özelliği hariç diğer özelliklerin `deger`'in olduğu gibi kullanılabilir. `dolduruldu` özelliğini pas geçmek için aşağıdaki kod `undefined` döndürür.
244
244
@@ -273,7 +273,7 @@ sayi: 23
273
273
*/
274
274
```
275
275
276
-
`degistirici` fonksiyonu içiçe objeler ve diziler dahil her şeyi alır. Tüm objelere yinelemeli olarak uygulanır. `this`'in değeri `degistirici` içerisinde o anki özellikleri tutar.
276
+
`degistirici` fonksiyonu iç içe objeler ve diziler dahil her şeyi alır. Tüm objelere yinelemeli olarak uygulanır. `this`'in değeri `degistirici` içerisinde o anki özellikleri tutar.
277
277
278
278
İlk çağrı özeldir. "Sarıcı obje" vasıtasıyla: `{"": tanisma}`. Diğer bir deyişle ilk `(anahtar, deger)` çifti boş anahtar ile gelir ve değeri hedef objenin tamamıdır. Bundan dolayı yukarıdaki örnekte ilk satır: `":[object Object]"`'dir.
279
279
@@ -285,7 +285,7 @@ Fikir `degistirici`'yi olabildiğince güçlü yapmaktır: Böylece gelen tüm o
285
285
286
286
Önceden, karakter dizisi haline getirilmiş objelerin hiç boşlukları bulunmamaktaydı. Eğer bunu obje üzerinden göndermek istiyorsanız pek önemli değildir. `bosluk` sadece güzel çıktı vermek amacıyla kullanılır.
287
287
288
-
Burada `bosluk = 2` kullanılmıştır, iç içe objelerin bir kaç satırda ve objeler arasında 2 boşluk olacak şekilde ayarlamasını söyler.
288
+
Burada `bosluk = 2` kullanılmıştır, iç içe objelerin birkaç satırda ve objeler arasında 2 boşluk olacak şekilde ayarlamasını söyler.
Karakterlerin çeviriminde `toString` metodunun kullanılabileceğini daha önce söylemiştil. Objeler için `toJSON` metodu varsa `JSON.stringify` çağırıldığında bu otomatik olarak çağrılır.
327
+
Karakterlerin çeviriminde `toString` metodunun kullanılabileceğini daha önce söylemiştik. Objeler için `toJSON` metodu varsa `JSON.stringify` çağırıldığında bu otomatik olarak çağırılır.
JSON gerektiği kadar karmaşık olabilir, içerisinde objeler diziler ve bu objelerin içerisinde objeler diziler olabilir. Tek yapması gereken formata uymaktır.
424
424
425
-
Aşağıda elle yazılan JSON'da en çok karşılaşılan hatalar sıralanmıştır. (Bazen test etme amaçlı elle JSON yazılabilir)
425
+
Aşağıda elle yazılan JSON'da en çok karşılaşılan hatalar sıralanmıştır. (Bazen test etme amaçlı elle JSON yazılabilir)
426
426
427
427
```js
428
428
let json =`{
@@ -441,7 +441,7 @@ JSON'un daha sıkı yazıma sahip olmasının nedeni geliştiricilerinin tembel
441
441
442
442
## Alıcı kullanma
443
443
444
-
Diyelimki sunucunuzda `tanisma` diye bir objeyi metin şeklinde tutuyorsunuz.
444
+
Diyelim ki sunucunuzda `tanisma` diye bir objeyi metin şeklinde tutuyorsunuz.
0 commit comments