Maison >développement back-end >C++ >Comment puis-je générer des réponses JSON pures à partir d'un service Web ASMX ?

Comment puis-je générer des réponses JSON pures à partir d'un service Web ASMX ?

DDD
DDDoriginal
2025-01-15 09:56:43711parcourir

How Can I Output Pure JSON Responses from an ASMX Web Service?

Génération de réponses JSON pures à partir des services Web ASMX

Les services Web ASMX, par défaut, renvoient des données XML. Cependant, de nombreuses applications nécessitent une sortie JSON. Bien que l'utilisation de ScriptMethod(ResponseFormat = ResponseFormat.Json) puisse sembler une solution, elle enveloppe en fait le JSON dans un conteneur XML.

Pour obtenir des réponses JSON pures, évitez d'utiliser la propriété ResponseFormat et écrivez plutôt directement la chaîne JSON dans l'objet HttpResponse. Cette approche élimine le wrapper XML et fournit des données JSON propres. Modifiez votre WebMethod pour utiliser un type de retour void et écrivez directement la chaîne JSON :

<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>

Notez l'ajout de HttpContext.Current.Response.ContentType = "application/json";. Cette ligne est cruciale ; il définit l'en-tête de type de contenu correct, garantissant que le client interprète correctement la réponse en JSON. Cette méthode permet de créer des réponses JSON pures à partir d'ASMX sans avoir besoin de bibliothèques ou d'outils externes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn