ホームページ >ウェブフロントエンド >jsチュートリアル >JSON POST データをオブジェクトとして Web API メソッドに適切に渡すにはどうすればよいですか?

JSON POST データをオブジェクトとして Web API メソッドに適切に渡すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-08 07:49:01748ブラウズ

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

JSON POST データをオブジェクトとして Web API メソッドに渡す方法

ASP.NET MVC4 Web API アプリケーションは、次のような便利な方法を提供します。顧客データを保存する POST メソッドを定義します。ただし、顧客データが POST リクエスト本文内で JSON 形式で渡される場合、POST メソッドの顧客パラメータにそのプロパティの null 値が含まれる可能性があります。

問題の解決: コンテンツ タイプ "application/" の使用json"

この問題を解決するには、次の Content-Type を使用することが重要です。 header:

Content-Type: application/json

リクエストの変更:

リクエストを送信するときは、次の変更が必要です:

// 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);

このシナリオでは、モデル バインダーは、JSON データをクラス オブジェクトに適切にバインドします。

追加考慮事項:

  • Web API メソッドのパラメーターが [FromBody] 属性で修飾されていることを確認します。
public object Post([FromBody] Customer customer)
  • 次のような複雑なオブジェクトを送信する場合ネストされたプロパティを持つビュー モデルとして、メソッド パラメーターを [FromBody] で装飾し、Content-Type ヘッダーを次のように指定します。 "application/json."
  • 上記の手順が失敗した場合は、モデルのプロパティがパブリックであり、パラメーターのないコンストラクターがあることを確認してください。また、プロパティ名が JSON プロパティ名と一致していることを確認してください。

以上がJSON POST データをオブジェクトとして Web API メソッドに適切に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。