この無効なjson文字列を逆シリアル化しようとすると(}]
最後に欠落しています):
[{"ExtId":"2","Name":"VIP sj�lland","Mobiles":["4533333333","4544444444"]
これを行うことにより:
var result = JsonSerializer.DeserializeFromString<T>(str);
ServiceStack json デシリアライザーは文字列を受け入れますが、これらの値を持つ 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 を呼び出す直前ですが、例外はスローされませんでした。1 月に、無効な JSON をスローするように ServiceStack.Text を構成するという質問をしたところ、その答えは、ServiceStack は回復力を優先しており、GitHub でプル リクエストを作成できるというものでした。
これはまだですか?そして、誰かがすでにそれを行って、私の問題を解決しましたか? それ以外の場合は、非常にタイトなスケジュールになっているため、ServiceStack でデシリアライゼーション エラーを発生させるためのオプション フラグの作成方法に関するコードまたは提案があれば、ここに返信してください。