Maison  >  Article  >  interface Web  >  Comment transmettre correctement les données JSON POST à ​​une méthode API Web en tant qu'objet ?

Comment transmettre correctement les données JSON POST à ​​une méthode API Web en tant qu'objet ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-08 07:49:01689parcourir

How to Properly Pass JSON POST Data to a Web API Method as an Object?

Comment transmettre les données JSON POST à ​​la méthode API Web en tant qu'objet ?

Les applications API Web ASP.NET MVC4 offrent un moyen pratique de définir des méthodes POST qui enregistrent les données client. Cependant, lorsque les données client sont transmises au format JSON dans le corps de la requête POST, le paramètre client dans la méthode POST peut contenir des valeurs nulles pour ses propriétés.

Résoudre le problème : utilisation du type de contenu "application/ json"

Pour résoudre ce problème, il est crucial d'utiliser l'en-tête Content-Type suivant :

Content-Type: application/json

Demande de modification :

Lors de l'envoi de la demande, les modifications suivantes sont nécessaires :

// Convert the customer object to a JSON string
var customerJSON = JSON.stringify(customer);

// Set the Content-Type header
var xhr = new XMLHttpRequest();
xhr.open("POST", "api/customers");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(customerJSON);

Dans ce scénario, le classeur de modèles liera de manière appropriée les données JSON à l'objet de classe.

Considérations supplémentaires :

  • Assurez-vous que le paramètre de la méthode API Web est décoré avec l'attribut [FromBody] :
public object Post([FromBody] Customer customer)
  • Si vous envoyez des objets complexes tels que affichez les modèles avec des propriétés imbriquées, décorez le paramètre de méthode avec [FromBody] et spécifiez l'en-tête Content-Type comme "application/json".
  • Si les étapes ci-dessus échouent, assurez-vous que les propriétés du modèle sont publiques et ont un constructeur sans paramètre. Vérifiez également que les noms de propriété correspondent aux noms de propriété JSON.

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