JSON serialize
- React Native kursu
- Başlangıç
- Ders 110/116
- 5 dk
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
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
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
await AsyncStorage.setItem('user', ____(user));
await AsyncStorage.setItem('user', JSON.stringify(user));
Açıklama: JSON.stringify ile nesneyi dizeye çevirirsin.
2 Nesne saklarken hangi işlev kullanılır?
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 |