Когда я пытаюсь десериализовать эту недопустимую строку json (}]
отсутствует в конце):
[{"ExtId":"2","Name":"VIP sj�lland","Mobiles":["4533333333","4544444444"]
Сделав это:
var result = JsonSerializer.DeserializeFromString<T>(str);
Deserializer ServiceStack json принимает строку, но создает неправильный объект, потому что в итоге я получаю объект С#, имеющий следующие значения:
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, но исключение не было выбрано. В январе я задал этот вопрос Configure ServiceStack.Text, чтобы выбросить недействительный JSON, и ответ заключался в том, что ServiceStack предпочитает resilence и что я могу сделать запрос на перенос в GitHub.
Это все еще так? И кто-нибудь сделал это уже, избавив меня от неприятностей? В противном случае, у меня очень строгий график, поэтому, если у кого-то есть какой-то код или предложения о том, как создать флаг опции для того, чтобы заставить ServiceStack выбрасывать ошибки десериализации, ответьте здесь, чтобы я мог сделать это быстрее.