2016年8月19日金曜日

Visual Studio 2015でWeb APIを作る(続き)

前回の続きです。

下記のJSONデータをPOSTしてみましょう。
{
  "Name" = "AIMEK",
  "Age" = 17
}

Postメソッドの引数valueに文字列が渡ってくるのかと思いましたが、valueはnullでした。
public void Post([FromBody]string value)
{
}
そこで、下記のクラスを作成します。
public class User
{
    public string Name { getset; }
    public int Age { getset; }
}
Postメソッドの引数をUserクラスに変更してみます。
public void Post([FromBody]User value)
{
}
すると、JSONデータがUserクラスにバインドされ、各プロパティに送信された値がちゃんと入っています。

ただ、送信されるデータごとにクラスを作成するとクラスが増える一方ですよね。
このような使い捨てのクラスであれば、匿名クラスを定義し、デシリアライズすることもできます。
また、匿名クラスで返してやれば、レスポンスとしてJSONデータが返ります。
public object Post([FromBody]object value)
{
    var type = new { Name = string.Empty, Age = 0, };
    var user = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(value.ToString(), type);
    return new { Result = 0, Status = "Success", };
}

またいつか、どこかで。

0 件のコメント:

コメントを投稿