【发布时间】:2019-07-10 09:24:03
【问题描述】:
我有一个 POST 端点 (ASP.NET Web API 2.2),它需要一个已定义的 json。
[HttpPost()]
public async Task<IActionResult> SetProcessStart([FromBody]MyDataWrapper myDataWrapper)
MyDataWrapper json 包括例如三个参数。
{
"name": "Heinz",
"color": "green",
"hat": false
}
color 和 hat 两个参数是可选的。 但是当用户传递它时:
{
"name": "Heinz"
}
myDataWrapper 为空。
我试过了:
public async Task<IActionResult> SetProcessStart([FromBody]object myObject)
MyDataWrapper myDataWrapper = (MyDataWrapper)object;
但它不起作用。
如何处理短 json 并将其添加到我的 MyDataWrapper 对象中?
public class MyDataWrapper
{
[JsonProperty("name", Required = Required.Always)]
public string Name { get; set; }
[JsonProperty("color", Required = Required.AllowNull)]
public string Color { get; set; }
[JsonProperty("hat", Required = Required.AllowNull)]
public bool Hat { get; set; }
}
【问题讨论】:
-
向我们展示
MyDataWrapper类。 -
传递所有属性是否按预期工作?
-
@DavidG 我将 MyDataWrapper 添加到最初的问题中。
-
Required.AllowNull表示该属性需要存在但允许为空。您可能想使用Required.Default或Required.DisallowNull。 -
@Fabio 是的,当 json 完成后,一切正常。
标签: c# asp.net .net asp.net-core asp.net-web-api