Настроить Servicestack.Text, чтобы бросить недопустимый JSON

StackOverflow https://stackoverflow.com/questions/8972556

  •  12-11-2019
  •  | 
  •  

Вопрос

Можно ли сделать библиотечную библиотеку Servicestack.По умолчанию он выглядит так, как будто неверный JSON просто игнорируется, так что объект результата содержит нулевые значения.

Когда я пытаюсь десерифицировать этот JSON (A »отсутствует после MongoconnectionString)

{
"MongoDb": {
"MongoConnectionString:"mongodb://localhost:27017/x",
"MongoDatabase":"x",    
"MongoSafeModeEnabled":true, 
"MongoSafeModeFSync":true,
"MongoSafeModeWriteReplicationCount":
"MongoSafeModeWriteTimeout":"00:00:00"
},
.

, делая это: jsonserializer.deserializeFromString (JSON); где

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;}
    }
}
.

Я получаю объект конфигурации, где MongoDBsettings NULL.Я бы предпочел получить исполнение в этом случае.Это возможно?

Это было полезно?

Решение

На данный момент серии ServiceStack оптимизированы для устойчивости, то есть десериализуются как можно больше без ошибок.

Я бы порекомендовал добавить часть собственной проверки проверки, проверяя после сериализации, чтобы работать, какие поля не были десессионные правильно.

Вы также можете подать запрос на тягу на Servicestack.text Project, который поддерживаетФлаг отказа (т.е. на jsconfig) изменить поведение для броска исключений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top