で辞書に投稿私はこのようになりますウェブAPIメソッドがあります。WebAPIの - JSON
[HttpPost]
[Route("messages")]
public IHttpActionResult Post(IEnumerable<Email> email)
{
AddToQueue(email);
return Ok("message added to queue");
}
マイEmailクラスは、現在、次のようになります。
public string Body { get; set; }
public string From { get; set; }
public string Template { get; set; }
public string To { get; set; }
public string Type { get; set; }
そして私は、私に掲示しています次のような、フィドラーを使った投稿方法:
User-Agent: Fiddler
Host: localhost:3994
Content-Length: 215
Content-Type: application/json; charset=utf-8
[
{"Body":"body","From":"from","To":"to","Template":"template"},
{"Body":"body1","From":"from1","To":"to1","Template":"template1"},
{"Body":"body2","From":"from2","To":"to2","Template":"template2"}
]
これはうまくいきます。しかし、私は私の電子メールクラスに辞書を追加できるようにしたいので、それは次のようになります。
public string Body { get; set; }
public string From { get; set; }
public string Template { get; set; }
public string To { get; set; }
public string Type { get; set; }
public Dictionary<string, string> HandleBars { get; set; }
そして、私はこのように見て私の要求変更:しかし
[{
"Body": "body",
"From": "from",
"To": "to",
"Template": "template",
"HandleBars": [{
"something": "value"
}]
},
{
"Body": "body1",
"From": "from1",
"To": "to1",
"Template": "template1"
},
{
"Body": "body2",
"From": "from2",
"To": "to2",
"Template": "template2"
}]
を、ときPostメソッドがこれを受け取ると、HandleBarsディクショナリを除いて、すべてのEmailフィールドが設定されます。それを正しく渡すためには何が必要ですか?私のJSONは正しく構造化されていますか?
が、それは '{ "値"(JSON配列内)ではないでしょう持っている必要があります。 "何か"、」 key ":" key1 "}'? (あなたのjsonをどのように囲んでいるかによってValue En Keyになるかもしれません) – Igor
'HandleBars'は' 'で、' string'を1つだけ渡すだけでなく、内容を内部に渡す必要があります'HandleBars'の名前は' key'と 'value'です –
ragerory
参照、ここにはすでに応答がありますhttp://stackoverflow.com/questions/2494294/sending-a-json-array-to-be-received-as-a-dictarringring -string – meorfi