配置ServiceStack.Text以抛出无效的JSON
在尝试反序列化无效JSON时,是否可以使ServiceStack.Text库抛出。默认情况下,看起来只是忽略了无效的JSON,因此结果对象包含空值 当我尝试反序列化此json时(MongoConnectionString后面缺少一个“a”) 通过这样做:JsonSerializer.DeserializeFromString(json); 在哪里配置ServiceStack.Text以抛出无效的JSON,json,
servicestack,Json,
servicestack,在尝试反序列化无效JSON时,是否可以使ServiceStack.Text库抛出。默认情况下,看起来只是忽略了无效的JSON,因此结果对象包含空值 当我尝试反序列化此json时(MongoConnectionString后面缺少一个“a”) 通过这样做:JsonSerializer.DeserializeFromString(json); 在哪里 我得到一个配置对象,其中MongoDbSettings为null。在这种情况下,我更希望得到一个exeception。这可能吗?目前ServiceSt
我得到一个配置对象,其中MongoDbSettings为null。在这种情况下,我更希望得到一个exeception。这可能吗?目前ServiceStack序列化程序针对弹性进行了优化,即尽可能地反序列化而不出错 我建议添加一些您自己的验证检查后序列化,以确定哪些字段未正确反序列化
您还可以向支持opt-in标志的项目(即在JsConfig上)提交一个pull请求,以更改抛出异常的行为。ok,感谢您的回答,并感谢您创建ServiceStack:-)
{
"MongoDb": {
"MongoConnectionString:"mongodb://localhost:27017/x",
"MongoDatabase":"x",
"MongoSafeModeEnabled":true,
"MongoSafeModeFSync":true,
"MongoSafeModeWriteReplicationCount":
"MongoSafeModeWriteTimeout":"00:00:00"
},
public class Configuration {
public class MongoDbSettings
{
public string MongoConnectionString {get;set;}
public string MongoDatabase {get;set;}
public bool MongoSafeModeEnabled {get;set;}
public bool MongoSafeModeFSync {get;set;}
public int MongoSafeModeWriteReplicationCount {get;set;}
public TimeSpan MongoSafeModeWriteTimeout {get;set;}
}
}