İç içe geçik Json'u C# ile Label'e atamak

MFRKNDGN

Centipat
Katılım
19 Eylül 2020
Mesajlar
166
Çözümler
2
Yer
Los Angeles, CA, United States
Başlığı tam kuramadım ama burada daha detaylı anlatmaya çalışacağım.
Elimde bir json dosyası var içeriği aşağıdaki gibi:

JSON:
{
         "logging_page_id": "profilePage",
         "show_follow_dialog": false,
         "graphql": {
                  "user": {
                           "biography": "Game and Software",
                           "external_url": "https://mfrkndgn.github.io/",
                           "external_url_linkshimmed": "https://mfrkndgn.github.io/feedback"
                  }
         }
}

Bu json da en içeriye geçmiş olan (yani burada: User{...}) yerin içideki "biography" değerine C# ile nasıl ulaşabilirim?
Json iç içe geçik olduğu için erişemedim.
Erişmek için kullandığım C# kodum aşağıdadır:

C#:
 string MyData = File.ReadAllText(@"C:\Users\KULLANICI-ADIM\Desktop\jsonDENEME.Json");
JObject MyParser = JObject.Parse(MyData);
ReURL = (string)MyParser["biography"];
 
Newtonsoft.Json kütüphanesiyle birlikte basitçe yapılabilir.

Burada Json dosyasını okuyabilmek için Deserialize işlemi yapılması gerekmektedir. Alttaki kodları lütfen iyice inceleyin.


C#:
using Newtonsoft.Json;
using System;
using System.IO;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string MyData = File.ReadAllText(@"D:\data.json");
            Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(MyData);

            Console.WriteLine(myDeserializedClass.graphql.user.biography);
            Console.ReadLine();
        }


    }

    public class User
    {
        public string biography { get; set; }
        public string external_url { get; set; }
        public string external_url_linkshimmed { get; set; }
    }

    public class Graphql
    {
        public User user { get; set; }
    }

    public class Root
    {
        public string logging_page_id { get; set; }
        public bool show_follow_dialog { get; set; }
        public Graphql graphql { get; set; }
    }

}

1619641740665.png
 
tip sınıflarını ayrı ayrı oluşturmak yerine şu siteye json'u yapıştırıp otomatik de oluşturtabilirsiniz.


C#:
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
    public class User
    {
        public string biography;
        public string external_url;
        public string external_url_linkshimmed;
    }

    public class Graphql
    {
        public User user;
    }

    public class Root
    {
        public string logging_page_id;
        public bool show_follow_dialog;
        public Graphql graphql;
    }
 

Yeni konular

Geri
Yukarı