Bu yazımızda Visual studio’da XML ve JSON web servis nasıl
hazırlanır? örneklerle birlikte inceleyeceğiz. Öncelikle bir web servis
hazırlayalım ve bu web 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
bakalım.
Bu işlem için öncelikle visual studio içerisinden ister
visual basic isterseniz c# dilinde bir proje açalım.
[VB]
“File > New > Project > Visual
Basic > Windows > Web > ASP.NET Web Application”
[C#]
“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.
[VB]
[Member.vb]
Public Class Member
Private m_Id As Integer
Public Property Id() As Integer
Get
Return m_Id
End Get
Set
m_Id = Value
End Set
End
Property
Private m_Name As String
Public Property Name() As String
Get
Return m_Name
End Get
Set
m_Name = Value
End Set
End
Property
Private m_Salary As Integer
Public Property Salary() As Integer
Get
Return m_Salary
End Get
Set
m_Salary = Value
End Set
End
Property
Private m_Position As String
Public Property Position() As String
Get
Return m_Position
End Get
Set
m_Position = Value
End Set
End Property
[Team.vb]
Public Class Team
Public Function GetTeamMembers() As Member()
Dim teamMembers As Member() = New Member() {
New Member() With {.Id = 1, .Name = "Samet", .Salary = 10000,
.Position = "Software Specialist"},
New Member() With {.Id = 2, .Name = "Kubilay", .Salary =
10000, .Position = "Software Specialist"},
New Member() With {.Id = 3, .Name = "Erkan", .Salary = 10000,
.Position = "Software Specialist"}}
Return teamMembers
End
Function
End Class
[C#]
[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.vb]
Imports System.ComponentModel
Imports System.Web.Script.Serialization
Imports System.Web.Script.Services
Imports System.Web.Services
<System.Web.Services.WebService(Namespace:="http://univera.com.tr/")>
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
_
<ToolboxItem(False)> _
Public Class JSONandXML
Inherits System.Web.Services.WebService
<WebMethod>
Public Function GetTeamFromXML() As Member()
Dim team As New Team()
Return team.GetTeamMembers()
End
Function
<WebMethod>
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
Public Function GetTeamFromJSON() As String
Dim team As New Team()
Return New JavaScriptSerializer().Serialize(team.GetTeamMembers())
End
Function
End Class
[JSONandXML.asmx.cs]
using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Script.Serialization;
namespace JSONandXMLCs
{
[WebService(Namespace = "http://univera.com.tr/")]
[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.
XML metodunu çağıdığımızda
karşımıza gelecek sonuç aşağıdaki gibi olmalıdır.
[GetTeamFromXML]
<?xml version="1.0"
encoding="UTF-8"?>
<ArrayOfMember xmlns="http://univera.com.tr/"
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>
JSON metodunu çağıdığımızda
karşımıza gelecek sonuç aşağıdaki gibi olmalıdır.
[GetTeamFromJSON]
<?xml version="1.0"
encoding="UTF-8"?>
<string xmlns="http://univera.com.tr/">[{"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>
Bir sonraki makalemizde XML & JSON web servisinden nasıl veri alınır? örneklerle birlikte inceleyeceğiz.
Samet ÇELİKBIÇAK
Yorumlar
Yorum Gönder