Когда я пытаюсь десериализовать эту недопустимую строку json (}]
отсутствует в конце):
[{"ExtId":"2","Name":"VIP sj�lland","Mobiles":["4533333333","4544444444"]
Делая это:
var result = JsonSerializer.DeserializeFromString(str);
Десериализатор json ServiceStack принимает строку, но создает неверную объект, потому что я получаю объект C# со следующими значениями:
ExtId : "2" // ok fine.
Name: "VIP sj�lland" // ok fine
Mobiles: ["4533333333","4544444444", "544444444"]// Aarg! An array with 3 objects ?!?
// There were only two in the JSON string.
В этом случае было бы намного лучше создать исключение вместо того, чтобы продолжать работу с неверными данными. Поэтому я попытался использовать:
JsConfig.ThrowOnDeserializationError = true;
непосредственно перед вызовом DeserializeFromString, но никаких исключений не было. В январе я задал этот вопрос Настройте ServiceStack.Text для выдачи недопустимого JSON, и ответ был в том, что ServiceStack поддерживает отказоустойчивость и что я могу сделать запрос на вытягивание в GitHub.
Это все еще так? И кто-нибудь уже сделал это, избавив меня от хлопот? В противном случае у меня очень плотный график, поэтому, если у кого-то есть код или предложения о том, как создать флаг параметра, чтобы ServiceStack выбрасывал ошибки десериализации, пожалуйста, ответьте здесь, чтобы я мог сделать это быстрее.