7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ASP.NET WebAPI GET通信でJSONを受け取る方法(WebAPI側で)

Last updated at Posted at 2017-12-11

######シリアライズしてUrlエンコしてクエリパラメーターに渡しているだけです。
######もっといい方法がありそうですが、一応できたのでメモします。

##クライアント側の実装

#####Jsonで送信するデータを定義

public class Person
{
  public string Name {get;set;}
  public int age {get;set;}
  public List<Car> Cars {get;set;}
}

public class Car
{
  public string Name {get;set;}
  public string Maker {get;set;}
  public string Money {get;set;}
}

#####JSONをシリアライズ→Urlエンコ→クエリに設定→APIにリクエスト

/*送信するデータを生成*/
var person = new Person(){
	Name = "山田太郎",
	age = 20,
	Cars = new List<Car>()
	{
		new Car()
		{
			Name = "テストA車",
			Maker = "A社",
			Money = 1000000
		},
		new Car()
		{
			Name = "テストB車",
			Maker = "B社",
			Money = 500000
		}
	}
}

/*送信するデータをシリアライズ ※JSON.NETを使用*/
var json = JsonConvert.SerializeObject(person);

/*Urlエンコード*/
var QueryEnc = HttpUtility.UrlEncode(json);

/*クエリパラメーターにJSONを設定してAPIにリクエスト*/
var url = "http://localhost:xxxxx/api/values"
using(var httpClient = new HttpClient()){
  await httpClient.GetAsync(url + "?json=" + QueryEnc);
}

##WebApi側の実装
#####Jsonで受け取るデータを定義 ※クライアント側で実装したものと同じ


public class Person
{
  public string Name {get;set;}
  public int age {get;set;}
  public List<Car>Cars {get;set;}
}

public class Car
{
  public string Name {get;set;}
  public string Maker {get;set;}
  public string Money {get;set;}
}

#####JSONでデータを受け取る

public string Get(string json)
{
  /*Urlデコード*/
    var jsonDcode = HttpUtility.UrlDecode(json);
   
    /*デシリアライズ*/
  var person = JsonConvert.DeserializeObject<Person>(jsonDecode);
}
  
  return "成功";

これでJSONを受け取ることが一応できました。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?