Başlangıç > C# > c# xml ve json web servis

c# xml ve json web servis


Merhabaxml_json
Bugün C# ile XML ve JSON web servis hazırlamaya bakacağız. Bir web servis hazırlayıp bu servis ile bir takım içindeki çalışanların id, adı, maaşı ve pozisyonu bilgilerini hem xml hem de json olarak nasıl alabilceğimize bakacağız. Bu işlem için önce bir proje açalım. Visual Studio içinde “File > New > Project > Visual C# > Windows > Web > ASP.NET Web Application” seçiminden sonra ekrana gelen seçimlerden “Empty” seçimi ile projemizi oluşturalım. Proje oluştuktan sonra proje üzerinde sağ tık ile “Add > Web Service(ASMX)” seçimi ile servisimizi ekleyelim. Artık proje için herşey hazır olduğuna göre şimdi servis içinde kullanacağımız class larımızı hazırlayalım. İlk olarak takım üyelerinin bilgilerinin oldugu “Member” classını ve sonrasında da “Team” classını oluşturualım.

[Member.cs]

namespace JSONandXMLCs
{
    public class Member
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Salary { get; set; }
        public string Position { get; set; }
    }
}

[Team.cs]

namespace JSONandXMLCs
{
    public class Team
    {
        public Member[] GetTeamMembers()
        {
            Member[] teamMembers = new Member[]
            {
            new Member() { Id=1,Name="Samet",Salary=10000,Position="Software Specialist"},
            new Member() { Id=2,Name="Kubilay",Salary=10000,Position="Software Specialist"},
            new Member() { Id=3,Name="Erkan",Salary=10000,Position="Software Specialist"},
            };

            return teamMembers;
        }
    }
}

İşlem yapacağımız classlarımız artık hazır şimdi bu classları kullanacağımız servisimizin içeriğini hazırlayalım. Servisimizin içinde iki adet metodumuz olacak, birisi XML olarak diğeride aynı veriyi JSON olarak bize verecek. Metodlarımız GetTeamFromXML ve GetTeamFromJSON olacak.

[JSONandXML.asmx.cs]

using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Script.Serialization;

namespace JSONandXMLCs
{
    [WebService(Namespace = "http://sametcelikbicak.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    public class JSONandXML : System.Web.Services.WebService
    {
        [WebMethod]
        public Member[] GetTeamFromXML()
        {
            Team team = new Team();
            return team.GetTeamMembers();
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetTeamFromJSON()
        {
            Team team = new Team();
            return new JavaScriptSerializer().Serialize(team.GetTeamMembers());
        }
    }
}

Artık herşey kullanıma hazır şimdi projeyi çalıştırıp servisin çalışmasını ve dönen değerlere bakalım. Servis çalıştığında aşağıdaki gibi görünecektir.

jsonandxmlcs

İlk olarak alıştığımız gibi XML metodunu çağırdık ve gelen sonuç aşağıdaki gibidir.

[GetTeamFromXML]

<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfMember xmlns="http://sametcelikbicak.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Member>
<Id>1</Id>
<Name>Samet</Name>
<Salary>10000</Salary>
<Position>Software Specialist</Position>
</Member>
<Member>
<Id>2</Id>
<Name>Kubilay</Name>
<Salary>10000</Salary>
<Position>Software Specialist</Position>
</Member>
<Member>
<Id>3</Id>
<Name>Erkan</Name>
<Salary>10000</Salary>
<Position>Software Specialist</Position>
</Member>
</ArrayOfMember>

Şimdide aynı verilere sahip sonuçları bize veren JSON metodunu çağıralım ve sonuçlarına bakalım.

[GetTeamFromJSON]


<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://sametcelikbicak.com/">[{"Id":1,"Name":"Samet","Salary":10000,"Position":"Software Specialist"},{"Id":2,"Name":"Kubilay","Salary":10000,"Position":"Software Specialist"},{"Id":3,"Name":"Erkan","Salary":10000,"Position":"Software Specialist"}]</string>

Artık bir web servis ile hem xml hemde json olarak verileri alabiliyoruz.

Projenin kaynak kodlarına üzerinden ulaşabilirsiniz.
Kolay gelsin.

  1. Henüz yorum yapılmamış.
  1. 27 Kasım 2016, 16:50

Yorum bırakın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.