Generating Pure JSON Responses from ASMX Web Services
ASMX web services, by default, return XML data. However, many applications require JSON output. While using ScriptMethod(ResponseFormat = ResponseFormat.Json)
might seem like a solution, it actually wraps the JSON in an XML container.
To achieve pure JSON responses, avoid using the ResponseFormat
property and instead directly write the JSON string to the HttpResponse
object. This approach eliminates the XML wrapper and delivers clean JSON data. Modify your WebMethod to use a void
return type and write the JSON string directly:
<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>
Note the addition of HttpContext.Current.Response.ContentType = "application/json";
. This line is crucial; it sets the correct content type header, ensuring the client correctly interprets the response as JSON. This method allows for the creation of pure JSON responses from ASMX without needing external libraries or tools.
The above is the detailed content of How Can I Output Pure JSON Responses from an ASMX Web Service?. For more information, please follow other related articles on the PHP Chinese website!