Kategoriler
C#

.NET Json Parser

Json datasını http://www.omdbapi.com/ adresinden çekip parçalayacağız.Siteye girip “game of thrones” diye arama yaptığımızda bize bir link oluşturuluyor. O linkte aradığımız filmin json datası var. Biz o datayı alıp işleyeceğiz.

json_1

Öncelikle projemize nuget package manager consolu açıp aşağıdaki komutu vererek Json.NET frameworkünü ekliyoruz.

Install-Package Newtonsoft.Json

 

 

public class filmObject
    {
        public string Title { get; set; }
        public string Year { get; set; }
        public string Rated { get; set; }
        public string Released { get; set; }
        public string Runtime { get; set; }
        public string Genre { get; set; }
        public string Director { get; set; }
        public string Writer { get; set; }
        public string Actors { get; set; }
        public string Plot { get; set; }
        public string Language { get; set; }
        public string Country { get; set; }
        public string Awards { get; set; }
        public string Poster { get; set; }
        public string Metascore { get; set; }
        public string imdbRating { get; set; }
        public string imdbVotes { get; set; }
        public string imdbID { get; set; }
        public string Type { get; set; }
        public string Response { get; set; }
    }
public List<filmObject> getFilm(string name)
        {

            WebClient c = new WebClient();
            c.Encoding = System.Text.Encoding.UTF8;
            var data = c.DownloadString("http://www.omdbapi.com/?t=" + name + "&y=&plot=short&r=json");
            List<filmObject> liste = new List<filmObject>();
            JObject o = JObject.Parse(data);

            liste.Add(new filmObject()
            {
                Title = o["Title"].ToString(),
                Year = o["Year"].ToString(),
                Rated = o["Rated"].ToString(),
                Released = o["Released"].ToString(),
                Runtime = o["Runtime"].ToString(),
                Genre = o["Genre"].ToString(),
                Director = o["Director"].ToString(),
                Writer = o["Writer"].ToString(),
                Actors = o["Actors"].ToString(),
                Plot = o["Plot"].ToString(),
                Language = o["Language"].ToString(),
                Country = o["Country"].ToString(),
                Awards = o["Awards"].ToString(),
                Poster = o["Poster"].ToString(),
                Metascore = o["Metascore"].ToString(),
                imdbRating = o["imdbRating"].ToString(),
                imdbVotes = o["imdbVotes"].ToString(),
                imdbID = o["imdbID"].ToString(),
                Type = o["Type"].ToString(),
                Response = o["Response"].ToString()
            });
            return liste;
        }

private void Form1_Load(object sender, EventArgs e)
        {
            film f1 = new film();
            List<filmObject> film = new List<filmObject>();
            film= f1.getFilm("game of thrones");

            label1.Text = film[0].Actors;
            label2.Text = film[0].Awards;
            label3.Text = film[0].Country;
            label4.Text = film[0].Director;
            label5.Text = film[0].Genre;
            label6.Text = film[0].imdbID;
            label7.Text = film[0].imdbRating;
            label8.Text = film[0].imdbVotes;
            label9.Text = film[0].Language;
            label10.Text = film[0].Metascore;
            label11.Text = film[0].Plot;
            label12.Text = film[0].Rated;
            label13.Text = film[0].Released;
            label14.Text = film[0].Response;
            label15.Text = film[0].Runtime;
            label16.Text = film[0].Title;
            label17.Text = film[0].Type;
            label18.Text = film[0].Writer;
            label19.Text = film[0].Year;
            pictureBox1.ImageLocation= film[0].Poster;
            
        }

Görselliğe pek önem vermedim. Siz istediğiniz gibi gelen datayı süsleyebilirsiniz.

json_2

Örnek projeyi buradan indirebilirisiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.