Vom Webservice aus gibst Du immer einen String zurück. JSON ist nichts anderes als ein speziell formatierter String.
Unter ASP NET ist das denkbar einfach.
Im Webservice musst Du System.Web.Script.Serialization includieren.
Also:
using System.Web.Script.Serialization;
In Deiner Methode kannst Du Dir dann aussuchen, ob Du Klassen anlegst und diese in eine Liste hängst oder bei einfachen Rückgaben einfach einen Hashtable verwendest.
Also am Beispiel von einem Hashtable.
Code:
[WebMethod]
[WebOperation(true, ResponseFormatMode.Json, true)]
public string blub(string bla, bool blaBlub)
{
// Irgendwelcher Code
...
//Hashtable Object erzeugen
Hashtable hashTable = new Hashtable();
//Schlüssel - Wert - Paare zuweisen
hashTable.Add("schlüssel1", irgendeinWert);
hashTable.Add("schlüssel2", irgendeinWert);
//Anschliessend baust Du aus dem Hashtable einen JSON-String
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(hashTable);
//und lieferst ihn an Deine Javascript Funktion zurück
return json;
}
Im JavaScript erhälst Du das dann zurück.
Deine Javascript return Funktion könnte in etwa folgend aussehen:
Code:
function OnMessageComplete(result) {
//Den String in ein Objekt umwandeln
var json = eval("(" + result + ")");
//Zugreifen kannst Du jetzt ganz einfach. Einfach json.Schluessel
var schluessel1 = json.schluessel1;
var schluessel2 = json.schluessel2;
}
Den Webservice rufst Du per JavaScript wie folgt auf:
namespace vom Webservice, Webservice, Funktionsname, Parameter, JavaScript Return Funktion.
Also beispielsweise
meinNamespace.BCM.blub(bla, blub, OnMessageComplete);