none
C# JSON SORUNSALI RRS feed

  • Soru

  • Arkadaşlar merhaba, C# formda kullabileceğim web sitemden aldığım json kodlarını nasıl kullanacağım hakkımda hiç bilgim yok json u daha önce hiç kullanmadım. Jsonda kayıtlı olan verilerimi kodlamada nasıl kullanabilirim..
    Örn : ( {"1":{"giris":"09:10","cikis":"09:45"}, şu kodun içindeki rakamları almak istiyorum sadece... )

    26 Ekim 2018 Cuma 06:19

Yanıtlar

  • Bu kodlarla alabilirsiniz.

    string JsonString = "{\"1\":{\"giris\":\"09:10\",\"cikis\":\"09:45\"}}";
    dynamic mesai = JsonConvert.DeserializeObject(JsonString);
    label1.Text = $"{mesai["1"].giris} - {mesai["1"].cikis}";
    

    Newtonsoft.Json paketini nasıl yükleyeceğinizi buradan öğrenebilirsiniz.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen mesut ommuş 26 Ekim 2018 Cuma 12:50
    26 Ekim 2018 Cuma 08:10
  • Özellik adının, sadece numara içeren metin olması, pek karşılaşmayacağınız bir durum.

    Size, Json kullanımını anlamanız için, yukarıdaki yanıtımdan daha fazla ayrıntı içeren bir örnek hazırladım. 

    class Mesai
    {
        public string giris { get; set; }
        public string cikis { get; set; }
        [JsonIgnore]
        public DateTime Giris
        {
            get
            {
                if (DateTime.TryParse(giris, out DateTime ret))
                    return ret;
                else
                    return DateTime.MinValue;
            }
        }
        [JsonIgnore]
        public DateTime Cikis
        {
            get
            {
                if (DateTime.TryParse(cikis, out DateTime ret))
                    return ret;
                else
                    return DateTime.MinValue;
            }
        }
    
        public Mesai()
        {
            giris = "";
            cikis = "";
        }
    }
    
    private void button1_Click(object sender, EventArgs e)
    {
        string JsonString = "{\"1\":{\"giris\":\"09:10\",\"cikis\":\"09:45\"}}";
        Dictionary<string, Mesai> mesai = JsonConvert.DeserializeObject<Dictionary<string, Mesai>>(JsonString);
        DateTime MesaiBaslangici = DateTime.Now.Date.AddHours(9);
        mesai.Keys.ToList().ForEach(m =>
        {
            if (mesai[m].Giris > MesaiBaslangici)
            {
                MessageBox.Show($"UYARI: {m} numaralı personel, mesaiye {(mesai[m].Giris-MesaiBaslangici).TotalMinutes} dakika geç geldi !");
            }
        });
    }

    İfadeleri incelerseniz kolayca kullanabileceğinizi umuyorum. 

    Başarılar.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    26 Ekim 2018 Cuma 09:45
  • Bu kodlarla alabilirsiniz.

    string JsonString = "{\"1\":{\"giris\":\"09:10\",\"cikis\":\"09:45\"}}";
    dynamic mesai = JsonConvert.DeserializeObject(JsonString);
    label1.Text = $"{mesai["1"].giris} - {mesai["1"].cikis}";

    Newtonsoft.Json paketini nasıl yükleyeceğinizi buradan öğrenebilirsiniz.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    Yanıt içerisinde ihtiyacınız olan her şey var.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen mesut ommuş 26 Ekim 2018 Cuma 12:50
    26 Ekim 2018 Cuma 12:26

Tüm Yanıtlar

  • Bu jsonda problem var 1 diye property adı vermişler.
    Nuget ile Newtonsoft Json kütüphanesini projenize ekleyin. Düzgün json stringleri bu kütüphane ile serialize/deserialize edebilirsiniz.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    26 Ekim 2018 Cuma 07:05
    Moderatör
  • Bu kodlarla alabilirsiniz.

    string JsonString = "{\"1\":{\"giris\":\"09:10\",\"cikis\":\"09:45\"}}";
    dynamic mesai = JsonConvert.DeserializeObject(JsonString);
    label1.Text = $"{mesai["1"].giris} - {mesai["1"].cikis}";
    

    Newtonsoft.Json paketini nasıl yükleyeceğinizi buradan öğrenebilirsiniz.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen mesut ommuş 26 Ekim 2018 Cuma 12:50
    26 Ekim 2018 Cuma 08:10
  • Kısa bir örnek satır yazabilir misiniz? Mesela if bloğunun içine "09:10" verisini nasıl eklicem ???

    Daha hiç json ile çalışmadım en ufak fikrim dahi yok:((



    26 Ekim 2018 Cuma 08:11
  • Kısa bir örnek satır yazabilir misiniz? Mesela if bloğunun içine "09:10" verisini nasıl eklicem ???

    Daha hiç json ile çalışmadım en ufak fikrim dahi yok:((

    Bundan sonrası Json bilgisi gerektirmiyor. Sadece c# bilmeniz yeterli.

    Elde ettiğiniz veriyi istediğiniz formata çevirip kullanabilirsiniz.

    Örneğin,

    DateTime MesaiBaslangici = DateTime.Now.Date.AddHours(9);
    DateTime giris = Convert.ToDateTime($"{mesai["1"].giris}");
    if (giris > MesaiBaslangici)
    {
        MessageBox.Show("UYARI: Mesaiye geç geldiniz !");
    }

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    26 Ekim 2018 Cuma 08:24
  • Özellik adının, sadece numara içeren metin olması, pek karşılaşmayacağınız bir durum.

    Size, Json kullanımını anlamanız için, yukarıdaki yanıtımdan daha fazla ayrıntı içeren bir örnek hazırladım. 

    class Mesai
    {
        public string giris { get; set; }
        public string cikis { get; set; }
        [JsonIgnore]
        public DateTime Giris
        {
            get
            {
                if (DateTime.TryParse(giris, out DateTime ret))
                    return ret;
                else
                    return DateTime.MinValue;
            }
        }
        [JsonIgnore]
        public DateTime Cikis
        {
            get
            {
                if (DateTime.TryParse(cikis, out DateTime ret))
                    return ret;
                else
                    return DateTime.MinValue;
            }
        }
    
        public Mesai()
        {
            giris = "";
            cikis = "";
        }
    }
    
    private void button1_Click(object sender, EventArgs e)
    {
        string JsonString = "{\"1\":{\"giris\":\"09:10\",\"cikis\":\"09:45\"}}";
        Dictionary<string, Mesai> mesai = JsonConvert.DeserializeObject<Dictionary<string, Mesai>>(JsonString);
        DateTime MesaiBaslangici = DateTime.Now.Date.AddHours(9);
        mesai.Keys.ToList().ForEach(m =>
        {
            if (mesai[m].Giris > MesaiBaslangici)
            {
                MessageBox.Show($"UYARI: {m} numaralı personel, mesaiye {(mesai[m].Giris-MesaiBaslangici).TotalMinutes} dakika geç geldi !");
            }
        });
    }

    İfadeleri incelerseniz kolayca kullanabileceğinizi umuyorum. 

    Başarılar.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    26 Ekim 2018 Cuma 09:45
  • Murat Bey son yazdığınız kod satırın json la alakalı kodlarda altını çiziyor program json paketi yüklemem gerekli midir ?
    26 Ekim 2018 Cuma 12:23
  • Bu kodlarla alabilirsiniz.

    string JsonString = "{\"1\":{\"giris\":\"09:10\",\"cikis\":\"09:45\"}}";
    dynamic mesai = JsonConvert.DeserializeObject(JsonString);
    label1.Text = $"{mesai["1"].giris} - {mesai["1"].cikis}";

    Newtonsoft.Json paketini nasıl yükleyeceğinizi buradan öğrenebilirsiniz.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    Yanıt içerisinde ihtiyacınız olan her şey var.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen mesut ommuş 26 Ekim 2018 Cuma 12:50
    26 Ekim 2018 Cuma 12:26
  • Murat Bey teşekkür ederim şuan sanki çalıştırıyorum gibi sadece gerekli olan kendime uyarlamak

    26 Ekim 2018 Cuma 12:51
  • DateTime MesaiBaslangici = DateTime.Now.Date.AddHours(9);
    Bu kod satırındaki parantez içindeki (9) neyi gösteriyor peki ?
    • Yanıt Olarak İşaretleyen mesut ommuş 26 Ekim 2018 Cuma 14:24
    • Yanıt İşaretini Geri Alan mesut ommuş 26 Ekim 2018 Cuma 14:24
    26 Ekim 2018 Cuma 12:54
  • Örnek işletmemizde mesainin saat 09:00 da başladığını gösteriyor. Siz kendi uygulamanızda değiştirebilirsiniz.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    26 Ekim 2018 Cuma 13:35