servicestack,Json,servicestack" /> servicestack,Json,servicestack" />

配置ServiceStack.Text以抛出无效的JSON

配置ServiceStack.Text以抛出无效的JSON,json,servicestack,Json,servicestack,在尝试反序列化无效JSON时,是否可以使ServiceStack.Text库抛出。默认情况下,看起来只是忽略了无效的JSON,因此结果对象包含空值 当我尝试反序列化此json时(MongoConnectionString后面缺少一个“a”) 通过这样做:JsonSerializer.DeserializeFromString(json); 在哪里 我得到一个配置对象,其中MongoDbSettings为null。在这种情况下,我更希望得到一个exeception。这可能吗?目前ServiceSt

在尝试反序列化无效JSON时,是否可以使ServiceStack.Text库抛出。默认情况下,看起来只是忽略了无效的JSON,因此结果对象包含空值

当我尝试反序列化此json时(MongoConnectionString后面缺少一个“a”)

通过这样做:JsonSerializer.DeserializeFromString(json); 在哪里


我得到一个配置对象,其中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;}
    }
}