Bir önceki makalemizde "XML & JSON Web Servis Hazırlama" konusunu
incelemiştik. Bu makalemizde hazırladığımız servisi kullanarak veri alma
işlemini örneklerle inceleceğiz. Bu işlem için öncelikle bir Console uygulaması
hazırlayalım ve daha önce oluşturuduğumuz servisi bu proje içine referans
olarak ekleyelim.
Visual Studio içerisinde :
[VB]
“File
> New > Project > Visual Basic > Windows > Console Application”
[C#]
“File > New > Project > Visual C# > Windows >
Console Application”
seçimi ile
uygulamamızı hazırlayalım.
Daha
sonra ise proje üzerinde References üzerinde sağ tık ile açılan menüden "Add Service Reference" ile bir önceki makalede hazırladığımız servisimizi
ekleyelim.Daha önce hazırladığımız servisimizi localhost üzerinde çalıştırıp web servis adresini aldıktan sonra servis referansa ”http://localhost:58079/JSONandXML.asmx?wsdl” olarak ekliyoruz ve servis referans adı olarak da JSONandXML değerini
veriyoruz. Daha sonra yine references alanında yine sağ tık ile "Add Reference" diyoruz
ve JSON web servisi parse edebilmek
için gerekli olan "System.Web.Extensions.dll" ini ekliyoruz. Artık
programımızda servislerden veri alacak kodlarımızı yazmaya başlayabiliriz. İlk olarak JSON
parse işelminde ihtiyacımız olan "Member" sınıfımızı oluşturalım.
[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
End Class
[Member.cs]
namespace CallJSONandXMLCs
{
public class Member
{
public int Id { get; set; }
public string Name { get; set; }
public int Salary { get; set; }
public string Position { get; set; }
}
}
Member sınıfımız hazır olduğuna göre artık
kodlarımızı tamamlayabiliriz.
[Program.vb]
Imports
System.Web.Script.Serialization
Module
Program
Sub Main()
Dim xmlClient As
JSONandXML.JSONandXMLSoapClient = New JSONandXML.JSONandXMLSoapClient
Dim teamFromXML =
xmlClient.GetTeamFromXML
Console.WriteLine("XML'den gelen
sonuçlar:")
For Each item In teamFromXML
Console.WriteLine(item.Id &
" " & item.Name & " " & item.Position &
" " & item.Salary)
Next
Console.WriteLine()
Dim jsonClient As
JSONandXML.JSONandXMLSoapClient = New JSONandXML.JSONandXMLSoapClient
Dim teamFromJSON =
jsonClient.GetTeamFromJSON
Dim jss As JavaScriptSerializer = New
JavaScriptSerializer
Dim members As List(Of Member) = New
List(Of Member)
members = jss.Deserialize(Of List(Of
Member))(teamFromJSON)
Console.WriteLine("JSON'dan gelen
sonuçlar:")
For Each item In members
Console.WriteLine(item.Id &
" " & item.Name & " " & item.Position &
" " & item.Salary)
Next
Console.ReadKey()
End Sub
End
Module
[Program.cs]
using
System;
using
System.Collections.Generic;
using
System.Web.Script.Serialization;
namespace
CallJSONandXMLCs
{
class Program
{
static void Main(string[] args)
{
JSONandXML.JSONandXMLSoapClient
xmlClient = new JSONandXML.JSONandXMLSoapClient();
var teamFromXML =
xmlClient.GetTeamFromXML();
Console.WriteLine("XML'den
gelen sonuçlar:");
foreach (var item in teamFromXML)
{
Console.WriteLine(item.Id +
" " + item.Name + " " + item.Position + " " +
item.Salary);
}
Console.WriteLine();
JSONandXML.JSONandXMLSoapClient
jsonClient = new JSONandXML.JSONandXMLSoapClient();
var teamFromJSON =
jsonClient.GetTeamFromJSON();
JavaScriptSerializer jss = new
JavaScriptSerializer();
List<Member> members = new
List<Member>();
members =
jss.Deserialize<List<Member>>(teamFromJSON);
Console.WriteLine("JSON'dan gelen
sonuçlar:");
foreach (var item in members)
{
Console.WriteLine(item.Id +
" " + item.Name + " " + item.Position + " " +
item.Salary);
}
Console.ReadKey();
}
}
}
Yukarıdaki kodlarda da görüldüğü gibi hem XML’den hemde
JSON’dan gelen sonuçları çıktı olarak console üzerine yazdırık. Kodlarda
özellikle farklı client oluşturdum xmlClient ve jsonClient şekilinde , bu
sebeple iki servis için yazılan kodları ayrı ayrı okumak kolay ve anlaşılır
olabilir.
Yukarıdaki kodlar çalıştığında çıktı aşağıdaki gibi olacaktır.
XML'den gelen sonuçlar:
1 Samet Software
Specialist 10000
2 Kubilay Software
Specialist 10000
3 Erkan Software
Specialist 10000
JSON'dan gelen
sonuçlar:
1 Samet Software
Specialist 10000
2 Kubilay Software
Specialist 10000
3 Erkan Software
Specialist 10000
Samet ÇELİKBIÇAK
Yorumlar
Yorum Gönder