WebApi 使用 FromBody 接收包括动态列表的参数
WebApi receive parameters including dynamic list using FromBody
我正在尝试在 webapi
中接收以下 JSON 格式
{
"name": "Matt",
"age": "24",
"payload": {"key1": "value1", "key2": "value2"}
}
这里的负载是动态的,它可以有任何键和值。
我的 webapi 看起来像
public class Person
{
public string name{ get; set; }
public int age{ get; set; }
public string payload { get; set; }
}
public async Task<HttpResponseMessage> Post([FromBody]Person value)
{
// Getting name and age but not payload.
}
问题
FromBody是获取这个值的方法吗?如果是,我在这里缺少什么。如果否,此类输入的最佳做法是什么?
是 [FromBody]
应该使用。您可以使用 IDictionary<string,string>
作为负载。
public class Person
{
public string name{ get; set; }
public int age{ get; set; }
public IDictionary<string,string> payload { get; set; }
}
public async Task<HttpResponseMessage> Post([FromBody]Person value)
{
var value1 = value.payload["key1"];
var value2 = value.payload["key2"];
}
我正在尝试在 webapi
中接收以下 JSON 格式 {
"name": "Matt",
"age": "24",
"payload": {"key1": "value1", "key2": "value2"}
}
这里的负载是动态的,它可以有任何键和值。
我的 webapi 看起来像
public class Person
{
public string name{ get; set; }
public int age{ get; set; }
public string payload { get; set; }
}
public async Task<HttpResponseMessage> Post([FromBody]Person value)
{
// Getting name and age but not payload.
}
问题
FromBody是获取这个值的方法吗?如果是,我在这里缺少什么。如果否,此类输入的最佳做法是什么?
是 [FromBody]
应该使用。您可以使用 IDictionary<string,string>
作为负载。
public class Person
{
public string name{ get; set; }
public int age{ get; set; }
public IDictionary<string,string> payload { get; set; }
}
public async Task<HttpResponseMessage> Post([FromBody]Person value)
{
var value1 = value.payload["key1"];
var value2 = value.payload["key2"];
}