WebElektronika

Webszolgáltatás (host) megvalósítása JSON használatával

person access_time 2015.11.30.
Az XML-es webszolgáltatás elavultnak tekinthető, noha még mindig megtalálhatóak a neten. A JSON elterjedt, kisebb adatátvitellel jár, mint az XML. Ezért megnézünk most egy olyan host alkalmazást, amely JSON formában publikálja ki az adatokat.


Indítsuk el a Visual Studio-t és hozzunk létre egy új üres projektet (1. ábra). 

kep
1. ábra   Projekt létrehozása
 

Az új projektünkhöz adjunk hozzá egy webszolgáltatást, amelynek a neve legyen: pelda.asmx (2. ábra).

kep
2. ábra   Webservice hozzáadása
 

Ezután adjunk még hozzá a projektünkhöz egy osztályt (kocsi.cs) is (3. ábra).

kep
3. ábra   Osztály hozzáadása
 

A "kocsi" nevű osztályt egészítsük ki a következő property-kkel :

public class kocsi
{
    public string Gyarto { get; set; }
    public string Modell { get; set; }
    public string Kivitel { get; set; }
    public string Szin { get; set; }
    public bool isSerult { get; set; }
    public int GyartasEv { get; set; }

}

 

Ezután egészítsük ki a pelda.asmx-hez tartozó pelda.cs file-ban található osztályt a getAutok() metódussal :

[WebMethod]
    public string getAutok()
    {
        List<kocsi> lista = new List<kocsi>();

        kocsi p1 = new kocsi()
        {
            Gyarto = "Mercedes",
            Modell = "C200",
            GyartasEv = 2004,
            Kivitel = "Coupe",
            Szin = "fekete",
            isSerult = false
        };

        kocsi p2 = new kocsi()
        {
            Gyarto = "Mercedes",
            Modell = "C180",
            GyartasEv = 2006,
            Kivitel = "limuzin",
            Szin = "fekete",
            isSerult = false
        };

        kocsi p3 = new kocsi()
        {
            Gyarto = "Dacia",
            Modell = "Daster",
            GyartasEv = 2015,
            Szin = "fekete",
            Kivitel = "SUV",
            isSerult = false
        };

        lista.Add(p1);
        lista.Add(p2);
        lista.Add(p3);
        JavaScriptSerializer jss = new JavaScriptSerializer();
        return jss.Serialize(lista);
    }

 

A getAutok() metódusban először a List osztályból készítünk egy "lista"-t, majd a kocsi osztályt  is háromszor példányosítjuk (p1, p2, p3), és a példányok tulajdonságainak különböző értékeket adunk. Az értékadások után ezeket a példányokat hozzáadjuk a listához (lista.Add(p1)).

A JSON alkalmazásához a lista-t sorosítani kell. Ehhez szükségünk van a JavaScriptSerializer osztályra. Ezt nem tartalmazza közvetlenül a projektünk, ezt fel kell vennünk a szerelvények közé (4. ábra).

kep
4. ábra   System.Web.Script.Serialization felvétele
 

Az 5. ábrán látjuk a projektfile-unkba felvett referenciát.

kep
5. ábra   A felvett System.Web.Script.Serialization
 

Az elkészült példaalkalmazásunkat indítsuk el debug módban (F5), majd futtassuk a getAutok() webmetódust (6. ábra).

kep
6. ábra   A JSON formátumban lekért autóadatok