


Deux méthodes pour définir le type de retour de l'API Web C# sur json
Lorsque l'API Web écrit une interface API, le retour par défaut est de sérialiser votre objet et de le renvoyer sous forme XML. Alors, comment pouvez-vous le faire revenir en tant que json :
Méthode 1 : (Modifier la configuration). méthode)
Recherchez le fichier Global.asax et ajoutez une phrase dans la méthode Application_Start() :
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
Après modification :
<br>protected void Application_Start() <br>{ <br>AreaRegistration.RegisterAllAreas(); <br>WebApiConfig.Register(GlobalConfiguration.Configuration); <br>FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); <br>RouteConfig.RegisterRoutes(RouteTable.Routes); <br>// 使api返回为jsonGlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();} <br>
Retour comme ça Les résultats sont tous de type json, mais il y a un inconvénient. Si le résultat renvoyé est de type String, comme 123, le json renvoyé deviendra "123"
La solution est de le faire. Définissez vous-même le type de retour (le type de retour est HttpResponseMessage)
public HttpResponseMessage PostUserName(User user) { String userName = user.userName; HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(userName,Encoding.GetEncoding("UTF-8"), "application/json") }; return result; }
Méthode 2 : (Méthode Taiwan Balm)
Dans la première méthode, vous devez modifier la configuration et traiter le retour json valeur de type String. C'est très gênant, pourquoi ne pas utiliser l'objet de sérialisation automatique dans l'API Web, le sérialiser vous-même puis le renvoyer
public HttpResponseMessage PostUser(User user) { JavaScriptSerializer serializer = new JavaScriptSerializer(); string str = serializer.Serialize(user); HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(str, Encoding.GetEncoding("UTF-8"), "application/json") }; return result; }
La méthode 2 est la méthode que je recommande davantage, dans l'ordre ? ne pas l'écrire à plusieurs reprises dans chaque interface. Ces quelques lignes de code sont encapsulées dans une méthode afin qu'elle soit beaucoup plus pratique à utiliser.
public static HttpResponseMessage toJson(Object obj) { String str; if (obj is String ||obj is Char) { str = obj.ToString(); } else { JavaScriptSerializer serializer = new JavaScriptSerializer(); str = serializer.Serialize(obj); } HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(str, Encoding.GetEncoding("UTF-8"), "application/json") }; return result; }
Troisième méthode : (la méthode la plus gênante)
La première méthode est la plus simple, mais elle est trop mortelle et tous les formats XML renvoyés seront détruits S'il est perdu, la troisième méthode ne peut que supprimer le XML dans l'interface API et renvoyer json
Écrivez d'abord une classe pour traiter le retour :
public class JsonContentNegotiator : IContentNegotiator { private readonly JsonMediaTypeFormatter _jsonFormatter; public JsonContentNegotiator(JsonMediaTypeFormatter formatter) { _jsonFormatter = formatter; } public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters) { var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json")); return result; } }
Trouvez le fichier WebApiConfig.cs dans App_Start, ouvrez et recherchez la méthode Register(HttpConfiguration config)
et ajoutez le code suivant :
var jsonFormatter = new JsonMediaTypeFormatter(); config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));
Le code ajouté est le suivant :
<br>public static void Register(HttpConfiguration config) <br>{ <br>config.Routes.MapHttpRoute( <br>name: "DefaultApi", <br>routeTemplate: "api/{controller}/{action}/{id}", <br>defaults: new { id = RouteParameter.Optional } <br>);var jsonFormatter = new JsonMediaTypeFormatter(); onfig.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));} <br>
Méthode 3 Si le résultat est renvoyé Il est de type String, tel que 123, et le json renvoyé deviendra "123". La solution est la même que la méthode 1.
En fait, l'API Web convertira automatiquement l'objet renvoyé en un formulaire où les formats XML et JSON coexistent. Les méthodes 1 et 3 éliminent le retour XML, tandis que la méthode 2 consiste à personnaliser le retour.
Ce qui précède est le contenu des deux méthodes de définition du type de retour de l'API Web C# sur json. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'Active Directory avec C#. Nous discutons ici de l'introduction et du fonctionnement d'Active Directory en C# ainsi que de la syntaxe et de l'exemple.

Guide du générateur de nombres aléatoires en C#. Nous discutons ici du fonctionnement du générateur de nombres aléatoires, du concept de nombres pseudo-aléatoires et sécurisés.

Guide des modificateurs d'accès en C#. Nous avons discuté de l'introduction Types de modificateurs d'accès en C# ainsi que d'exemples et de résultats.

Guide de sérialisation C#. Nous discutons ici de l'introduction, des étapes de l'objet de sérialisation C#, du fonctionnement et de l'exemple respectivement.

Guide de la vue Grille de données C#. Nous discutons ici des exemples de la façon dont une vue de grille de données peut être chargée et exportée à partir de la base de données SQL ou d'un fichier Excel.

Guide des modèles en C#. Nous discutons ici de l'introduction et des 3 principaux types de modèles en C# ainsi que de ses exemples et de l'implémentation du code.

Guide des nombres premiers en C#. Nous discutons ici de l'introduction et des exemples de nombres premiers en c# ainsi que de l'implémentation du code.

Guide de Factorial en C#. Nous discutons ici de l'introduction de factorial en c# ainsi que de différents exemples et de l'implémentation du code.
