Daha açık olsun diye basitleştireceğim.Servisten dönen data şöyle:{"USER":[ { "AD":"AILEMLP002003120", "SOYAD":3, "YAS":3, } ] }Amacım sadece user içerisindekileri bir değişkende tutmak. Sonra da ihtiyaca göre sadece adını veya yaşını çekmek.fetch('http://abc.example.com/users') .then
Daha açık olsun diye basitleştireceğim.
Servisten dönen data şöyle:
{
"USER":[
{
"AD":"AILEMLP002003120",
"SOYAD":3,
"YAS":3,
}
]
}
Amacım sadece user içerisindekileri bir değişkende tutmak. Sonra da ihtiyaca göre sadece adını veya yaşını çekmek.
fetch('
abc.example.com')
.then((response) => response.json())
.then((responseJson) => {
//Şunu yazdırdığımda
console.log(responseJson.USER);
//bu dönüyor haliyle.
***
[{
"AD":"Ali",
"SOYAD":Velioglu,
"YAS":3,
}]
***
//İçinden adı çekmek istediğimde şunu yapıyorum bu da oluyor.
resonseJson.USER[0].AD; //Başka türlü de alınabiliyorsa aydınlatın.
***
Ali
***
}
Buraya kadar her şey istediğim gibi.
Ama ben responseJson.USER ı bir değişkene attığımda. Değişken ismi currentUser olsun.. fetch dışında console.log(currentUser) dediğimde "List [ Map { ... } ]" diye geliyor data ne alaka? Bu yüzden içinde gezemiyorum rahatlıkla.
JSON.parse(currentUser) denedim fakat parse edemiyor error veriyor.
JSON.stringfy dediğimde düzgün geldi fakat bu da string olduğu için her karakter dizinin bir elemanı gibi davranıyor yine içinde gezemiyorum. [0] dediğimde sadece "[" geliyor yani.
Çözümü şöyle buldum aslında ama mantığını anlamadım. Servisten responseJson ı önce stringfy edip state'teki bir değişkene atıyorum. Sonra kullanırken parse edip [0].AD diyorum o zaman geliyor.
E bu zaten JSON değil miydi neden direkt atadığım şekliyle olmadı?
fetch'in bir bok yemesi olabilir mi veya benim değişkenin tipini başta ne olarak belirlediğimle falan?
Senior bir arkadaş redux-saga kullanıyor. Saga içinde yield.call diye çekmiş ve gelen datayı yield.put diyerek atmış mesela bir değişkene. O değişken içindekileri okurken gayet user.sepet.no falan diye çağırıyor geliyor.
Hiç JSON a çevirme falan yapmamış ama direkt atmış. Onla ilgili olabilir mi?
Not: ReactNative spor