我尝试将JSON绑定到控制器中的一个自定义类,它来自一个我无法控制的源。我遇到的问题是,值数组以[{'value':'value 1'},[{'value':'value 2'}].我知道我可以创建一个只有一个字段'value'的对象,绑定也可以工作,但我想避免这种情况,并从绑定到字符串列表的请求中获取所有值。
我有一个控制器方法
public async Task<IActionResult> UploadData(List<DataModel> values)
下面是我希望数据模型的外观。
public class DataModel
{
public string? a{ get; set; }
public List<string>? b{ get; set; }
}
这是数据的例子
[{
"a": "name",
"b": [
{
"value": "one"
},
{
"value": "two"
}
]
}]
有没有办法做到这一点,最好是使用attriubte?
2条答案
按热度按时间dsf9zpds1#
让绑定对象保持原样,从你无法控制的源Map过来,只需要为对象定制一个getter,把它转换成你想要的列表。使用自动Map器或其他推荐的第三方库会增加不必要的复杂性。
然后当你需要周围的值时就调用
46qrfjad2#
最简单的方法是更改操作输入参数类型
另一种方法是使用JsonConstructor