Bu işi yapmak için AI2 nin yeni özelliklerinden olan DICTIONARY kullananız daha uygun olacaktır.
Bu sayede, eğer verileriniz programa JSON formatında geliyorsa (web de kullanılan en popüler format), içeri almanız çok kolay olur.
Programın açıklaması:
Resim linki: https://drive.google.com/file/d/1h-5FvJLqUBfehkwt4NaUpx5534xCsw9x/view?usp=sharing
DICTIONARY verileri key:value (anahtar:değer) çifleri halinde saklar. Size yolladığım örneğe göre bu her ürün için şu halde oluşturulur:
ANAHTAR DEĞER
ÜRÜN-1 ANAHTAR DEĞER
renk beyaz
ebat GxY
tip tipA
adet 10
ÜRÜN-2 ANAHTAR DEĞER
renk mavi
ebat GxY
tip tipB
adet 20
vb.
Buradan anlaşılacağı gibi, ÜRÜN adı ilk anahtar oluyor ve onun özellikleri de arkasına bir anahtar:değer listesi olarak çifler halinde yazılıyor.
Bloklara bakınca bunu daha kolay anlarsınız.
DICTIONARY yaratıldıktan sonra, onu kullanmak çok kolay.
Sizin veriniz iki kademeli olduğu için (1ci kademe - ÜRÜN adı, 2ci kademe - ÖZELLİKLER), verilere ulaşmayı "get value at key path" bloğu ile yapacaksınız. Burada PATH, yani takip edilecek yol, sizin anahtar değerlerinizin listesi: ÜRÜN adı, ÖZELLİK adı.
ÜRÜN adı SPINNER a yüklediğiniz değerlerden geliyor: SPINNER.selection veya bloğun SELECTION değeri.
ÖZELLİKLER de renk, ebat,tip, ve adet anahtarlarıyla ulaştığınız veri değerlerinden geliyor.
Bu iki yöntemle Ürün detaylarınızı ekrana aktarırsınız.
Örnek Program linki: https://drive.google.com/file/d/1-MGAUA7AgKEqYdz7HIqEMLQzcghJURmD/view?usp=sharing
DICTIONARY bu işi yapmak in kullanılacak tek yöntem değildir.
Aynı tip bir teknikle, basit LİSTE de kullanılabilir. Fakat birden fazla kademeli listelere ulaşmak kod görüntüsü bakımından temiz değildir.
Ayrıca, verilerinizin neredden geldiğine göre, eğer JSON kullanacaksanız, DICTIONARY daha uygundur.
Veri tabanı olarak TinyDB ile test edebilirsiniz. TinyDB de vei saklamayı key:value halinde yaptığı için, çalışma yönteminiz örnek programa uyar.
İyi çalışmalar