【发布时间】:2020-05-20 19:36:19
【问题描述】:
json.net 中是否有任何内置设置来禁用将数字转换为布尔值。我更希望它返回错误:(无需为每个具有 bool 属性的类编写自定义转换器)
public class MyClass
{
public bool flag { get; set; }
}
var str = @"{"flag":123}";
MyClass result = JsonConvert.DeserializeObject<MyClass>(str) ; // flag is true !
【问题讨论】:
-
序列化程序不会将 bool 序列化为
123...嗯,不是一个很好的工作 -
是的,但是如果数据是由用户手动输入的呢
-
您不需要为每个类使用自定义转换器。
-
您需要先自行清理这些数据。在这种情况下,
bool被 JSON.NET 明确定义为非零为true,零为false。您的软件不应允许输入您不想要的数字。 -
您永远不能将
"I like pie"或任何非布尔值存储在类的布尔字段中以便进行序列化,因此这似乎是一个XY 问题
标签: c# .net json json.net deserialization