Announcement

Collapse
No announcement yet.

Web Service soll Daten als JSon zurückgeben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Web Service soll Daten als JSon zurückgeben

    Hallo zusammen,

    ich hoffe ich schreib das jetzt in den richtigen Bereich.
    Ich muss einen WebService erstellen, der Daten aus einer Datenbank ließt und dann als JSon zurück liefert.
    Der Webservice an sich funktioniert (lokal bei mir) und das erstellen des JSon-Strings aus dem Ergebnis der Datenbankabfrage ist auch kein Problem.
    Nur was der Service dann zurück gibt ist leider noch immer ein XML.

    Hier mal mein Code der Webmethode:
    [highlight=c#]
    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string GetAdressById(int id)
    {
    DataSet dataSet = this.GetDataSet(string.Format("SELECT * FROM V_Anschrift WHERE AnschriftID={0}", id));
    string json = JsonConvert.SerializeObject(dataSet, Formatting.Indented);
    return json;
    }
    [/highlight]

    Die Rückgabe sieht dann so aus:
    Code:
    <string xmlns="http://tempuri.org/">
        { "Table": [ { "FiBuNr": null, "FiBuNr2": null, "FiBuNr3": null, "FirmaID": 1, "Rufname": "Andi AG" } ] }
    </string>
    Kann mir jemand sagen, was ich da falsch mache und wie ich das hinbekomme, dass wirklich JSon zurückgegeben wird?
    Ich benutze VS2012 und .net3.5 für dieses Projekt.

    Danke schon mal
    Andreas

  • #2
    Wie rufst du denn den Webservice auf? Wenn du das normale .Net Subsystem verwendest mit Proxy Wrappern etc. wird nun mal SOAP gesprochen und das ist eben XML. Wenn du die Methode direkt über ihre Url aufrufst und als ContentType application/json anforderst solltest du das eigentlich auch bekommen. Wie ist deine Webservice Klasse attributiert?

    Edit : Wieso ist dieser Ordner deprecated?

    Comment


    • #3
      Momentan ruf ich den Service direkt aus dem VS auf (Debuggen).
      Du meinst das liegt daran?

      Das ganze soll später aus einer iPad-App aufgerufen werden. Die entwickle aber nicht ich und ich hab auch keine Demo davon um ordentlich testen zu können.
      Hast du einen Tipp wie ich das ordentlich testen kann?

      Comment


      • #4
        Versuche z.B. das per Ajax aus einer Webseite abzurufen und das Json einfach anzuzeigen. Wenn das funktioniert sollte es von überall aus funktionieren. Eine IPad App kann aber bestimmt auch mit Soap umgehen und sollte dein obiges XML/Soap Reply verstehen.

        PS. Hat Json.Net eine Sonderbehandlung für DataSets oder heißt es bei dir nur auch DataSet ist aber was anderes?

        Comment


        • #5
          Das Json.Net kann direkt aus einem DataSet einen Json-String erstellen. Das geht wohl mit .net-Mittel nicht so einfach, hab ich gelesen.
          Da dies meine allerersten Schritte mit WebServices sind, bin ich natürlich über alles, was mir das Leben erleichtert, glücklich.

          Comment

          Working...
          X