Merhaba daha önceki konuda dosya okumayı anlamıştım ama yeni hazırladığım JSON dosyası içinde iç içe diziler tanımlama ihtiyacı oldu ama bir türlü okumayı başaramadım. Kodlar şöyle;
Alıntı:
>{
"kelimeler" :
[
{
"seviye" : "temel",
"soru" : "book",
"cevaplar" :
[
{"cevap1" : "kitap"},
{"cevap2" : "yer ayırtmak"}
]
}
]
}
module main;
import std.stdio;
import std.conv;
import std.file;
import std.json;
import std.container;
import std.variant;
import std.traits;
/*
class ForumUyesi
{
string kullaniciAdi;
string adiSoyadi;
int mesajSayisi;
this(string kullaniciAdi, string adiSoyadi, int mesajSayisi)
{
this.kullaniciAdi = kullaniciAdi;
this.adiSoyadi = adiSoyadi;
this.mesajSayisi = mesajSayisi;
}
}
*/
void main()
{
//SList!(ForumUyesi) listeForumUyeleri;
string icerik = to!string(read("uyeler.json"));
JSONValue[string] uyeListesi = parseJSON(icerik).object;
JSONValue[] uyeler = uyeListesi["kelimeler"].array;
foreach (uyeBilgisi; uyeler)
{
JSONValue[string] uye = uyeBilgisi.object;
writeln("seviye : ", uye["seviye"].str);
writeln("soru : ", uye["soru"].str);
JSONValue[] cevaplar = uye["cevaplar"].array;
foreach (cevapJSON; cevaplar)
{
JSONValue[string] cevap = cevapJSON.object;
// Alt satırda hata oluşuyor.
writeln("cevaplar : ", cevap["cevap1"].str);
}
//auto forumUyeleri = new ForumUyesi(uye["KullaniciAdi"].str, uye["AdiSoyadi"].str, cast(int)uye["MesajSayisi"].integer);
//listeForumUyeleri.insert(forumUyeleri);
//writefln("-> %s | %s | %s", uye["KullaniciAdi"].str, uye["AdiSoyadi"].str, cast(int)uye["MesajSayisi"].integer);
}
/*
foreach (uye; listeForumUyeleri)
{
// insert elemanları listeye ters sırada ekliyor
writefln("-> %s | %s | %s", uye.kullaniciAdi, uye.adiSoyadi, uye.mesajSayisi);
}
*/
}
Hata aldığım ekran çıktısı şöyle;
Alıntı:
>seviye : temel
soru : book
cevaplar : kitap
core.exception.RangeError@main(46): Range violation
41ED1C
41EB93
4021E1
408A4C
408A8B
40869B
439A49
Process returned 1 (0x1) execution time : 0.044 s
Press any key to continue.
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]