Generieren reiner JSON-Antworten aus ASMX-Webdiensten
ASMX-Webdienste geben standardmäßig XML-Daten zurück. Viele Anwendungen erfordern jedoch eine JSON-Ausgabe. Auch wenn die Verwendung von ScriptMethod(ResponseFormat = ResponseFormat.Json)
wie eine Lösung erscheint, verpackt sie den JSON tatsächlich in einen XML-Container.
Um reine JSON-Antworten zu erhalten, vermeiden Sie die Verwendung der ResponseFormat
-Eigenschaft und schreiben Sie stattdessen die JSON-Zeichenfolge direkt in das HttpResponse
-Objekt. Dieser Ansatz eliminiert den XML-Wrapper und liefert saubere JSON-Daten. Ändern Sie Ihre WebMethod, um einen void
-Rückgabetyp zu verwenden, und schreiben Sie die JSON-Zeichenfolge direkt:
<code class="language-csharp">[System.Web.Script.Services.ScriptService] public class WebServiceClass : System.Web.Services.WebService { [WebMethod] public void WebMethodName() { HttpContext.Current.Response.ContentType = "application/json"; //Crucial for correct content type HttpContext.Current.Response.Write("{ \"property\": \"value\" }"); } }</code>
Beachten Sie den Zusatz HttpContext.Current.Response.ContentType = "application/json";
. Diese Zeile ist entscheidend; Es legt den richtigen Inhaltstyp-Header fest und stellt so sicher, dass der Client die Antwort korrekt als JSON interpretiert. Diese Methode ermöglicht die Erstellung reiner JSON-Antworten aus ASMX, ohne dass externe Bibliotheken oder Tools erforderlich sind.
Das obige ist der detaillierte Inhalt vonWie kann ich reine JSON-Antworten von einem ASMX-Webdienst ausgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!