CodeBlanks Logo Icon CodeBlanks

JSON serialize

JSON.stringify ve parse ile obje saklamayı öğrenirsin.

JSON ile nesne saklama

AsyncStorage yalnızca dize saklar; nesne veya dizi saklayamazsın. Ama bir nesneyi dizeye çevirip saklayabilirsin. Bunun için JSON.stringify kullanırsın. Nesne, dize olarak anahtara yazılır.

const user = { name: 'Ayşe', age: 28 };
await AsyncStorage.setItem('user', JSON.stringify(user));

Burada user nesnesi önce JSON.stringify ile dizeye çevrilir, sonra setItem ile saklanır. Saklanan dize şöyle görünür: '{"name":"Ayşe","age":28}'. Dize, herhangi bir nesne yapısını korur.

Uygulama Sıra sende: nesne sakla ve oku

saveUser işlevinde user nesnesini JSON.stringify ile dizeye çevirip AsyncStorage.setItem('user', ...) ile kaydet. loadUser işlevinde AsyncStorage.getItem('user') ile okuyup JSON.parse ile nesneye çevir.

Başlangıç kodu

App.js
import AsyncStorage from '@react-native-async-storage/async-storage';

async function saveUser(user) {
  // user'ı dizeye çevirip kaydet
}

async function loadUser() {
  // dizeyi okuyup nesneye çevir
  return null;
}

Örnek çözüm

App.js
import AsyncStorage from '@react-native-async-storage/async-storage';

async function saveUser(user) {
  await AsyncStorage.setItem('user', JSON.stringify(user));
}

async function loadUser() {
  const raw = await AsyncStorage.getItem('user');
  return JSON.parse(raw);
}

JSON.parse ile geri okuma

Sakladığın dizeyi tekrar nesneye çevirmek için JSON.parse kullanırsın. getItem ile okuduğun dizeyi JSON.parse'e verirsin; sonuç bir nesne olur. Böylece nesnenin özelliklerine normale erişebilirsin.

const raw = await AsyncStorage.getItem('user');
const user = JSON.parse(raw);
console.log(user.name);

Eğer dize null ise (anahtar bulunamadıysa) JSON.parse(null) yine null döndürür; hata vermez. Ama bozuk bir dize verilirse hata fırlatır. Bu yüzden try/catch kullanmak güvenli olabilir.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Boşluğu doldur: nesneyi dizeye çevir

Soru
await AsyncStorage.setItem('user', ____(user));
Cevap
await AsyncStorage.setItem('user', JSON.stringify(user));

Açıklama: JSON.stringify ile nesneyi dizeye çevirirsin.

2 Nesne saklarken hangi işlev kullanılır?

App.js
await AsyncStorage.setItem('user', ?(user))
  • JSON.parse
  • toString
  • JSON.stringify Doğru cevap
  • parseInt

Açıklama: JSON.stringify ile nesne dizeye çevrilir.

3 Eşleştir: işlev ve görevi

Kavram Anlamı
JSON.stringify nesneden dizeye
JSON.parse dizeden nesneye
setItem dize saklama

Başlangıç bölümündeki tüm dersler