我有一个问题,即在将 json 从客户端传递到 bakeend 时,一个属性无法映射到实体。这是我作为参数收到的模型。
public class Utnker
{
public string Property1 { get; set; }
...
public TimeSpan time { get; set; }
}
当我使用字符串打发时间时,它无法触发烘焙。
let Data = {
'Property':'b',
'time':'10.12:6:8'
};
fetch('', {
method: 'POST',
mode: 'cors',
credentials: 'include',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: JSON.stringify(Data)
}).then(function(response) {
console.log(response);
});
当我使用本地json转换器转换json时,可以得到预期的结果。
您可以使用 newtonsoft 转换 json。但是如果不想使用插件,可以自定义一个jsonconverter。
public class TimeSpanConverter : JsonConverter<TimeSpan>
{
public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
return TimeSpan.Parse(reader.GetString());
}
public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString());
}
}
然后在启动中注册它。
services.AddControllers()
.AddJsonOptions(options =>
options.JsonSerializerOptions.Converters.Add(new TimeSpanConverter())
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句