] в Back -Sequentialization, важно иметь дело с пропавшими полями. По умолчанию сериализатор json.net тихо вернется к тишине, когда встречается с пропавшими полями. Такое поведение может привести к неограниченным ошибкам, когда объект с неверными атрибутами глубины.
вопрос:
вы сталкиваетесь с проблемой, то есть сериализаторы json.net не будут бросать аномалии, когда объекты, в которых отсутствуют полей, не имеют полей. Вместо этого он возвращает тихое значение, что затрудняет обнаружение неверных данных.
решение:
json.net предоставляет настраиваемые missionMemberHandling настройки. Установив его на
error, вы можете указать, что сериализатор вызывает jsonerializationexception
при столкновении пропущенных полей в течение периода опустынивания. Таким образом, вы можете явно обрабатывать такие ошибки в коде.
code:
с использованием newtonsoft.json;
пытаться
{{
// Читать строку json
Const string rafledata = @"{'myjsonint': 42}";
Const string orressdata = @"{'ofometherproperty': 'fbe8c20b'}";
// Создание настроек сериализатора
Jsonserializersettings settings = new jsoneserialatetngs ();
SUTESS.MissingMemberHandling = MissingMemberHandling.Error;
// объект обратной последовательности
var goodobj = jsonconvert.deserializeobject
Выход:
42 JsoneserialionExceuon: не удалось найти участника «какой -то проперт» на объекте типа «myjsonobjview».using Newtonsoft.Json;
try
{
// 读取JSON字符串
const string correctData = @"{ 'MyJsonInt': 42 }";
const string wrongData = @"{ 'SomeOtherProperty': 'fbe8c20b' }";
// 创建序列化器设置
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.MissingMemberHandling = MissingMemberHandling.Error;
// 反序列化对象
var goodObj = JsonConvert.DeserializeObject(correctData, settings);
Console.WriteLine(goodObj.MyJsonInt.ToString());
var badObj = JsonConvert.DeserializeObject(wrongData, settings);
Console.WriteLine(badObj.MyJsonInt.ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.GetType().Name ": " ex.Message);
}
error , мы убедитесь, что сериализатор выбросит объект отсутствия полей jsonerizationException ] позволяет обрабатывать ошибки и убедитесь, что керамика данных.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3