环境
- 互联网7
- 同时使用System.Text.Json
- 也作牛顿软件. Json(13.0.2)
示例代码
string str = @"{
""DateTimeNull"":""""
}";
try
{
var t = System.Text.Json.JsonSerializer.Deserialize<Test>(str);
}
catch (JsonException ex)
{
Console.WriteLine(new { Field = ex.Path , Message = ex.Message });
}
try
{
var t = Newtonsoft.Json.JsonConvert.DeserializeObject<Test>(str);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
public class Test
{
public DateTime? DateTimeNull { get; set; }
}
在上面的System.Text.Json反序列化器抛出异常,但newtansoft.json行没有抛出任何异常。它正在将空值转换为null,但我希望它应该thow错误,由于限制,我不能移动到System.Text.Json截至目前。
- 有效负载(这是已经在str中设置的i)
- 样品一
@"{
""DateTimeNull"":""""
}";
预期结果:引发错误,不应转换为null。
- 样本二。
@"{
""DateTimeNull"": null
}";
预期结果:不应引发错误,并且该错误为空值且目标类型为空。
1条答案
按热度按时间xxslljrj1#
我通常推荐使用
JsonConstructor
: