2016-09-30 16 views
1

JSON文字列を含むWebサービスから返された文字列があります。 文字列の一部のプロパティは、ベース64でエンコードされています。問題は、それらがbase64で一貫した方法でコード化されていないことです。 https://en.wikipedia.org/wiki/Base64#Implementations_and_historyによれば、base64エンコーディングにはいくつかのバリエーションがあります。私は何を期待しているのか知っています。デシリアライズする前に特定のプロパティ値を前処理する必要があります。私はJsonConvert.DeserializeObject()またはJsonSerializerSettingsのフックを探しています。newtonsoft jsonを使用して、矛盾したbase64エンコーディングで文字列を逆シリアル化する方法

明確にするには、jsonで非直列化する必要があるのは、ベース64エンコーディングの複数のプロパティが含まれていることです。いくつかは/ +とパディングがあり、他はパディングがありません。後者は例外が発生します。それは非ベース64 文字、二つ以上のパディング文字、またはパディング文字の間で不正な文字 が含まれているよう

「入力が有効なベース-64文字列ではありません。 「

+0

は、これらの奇妙な探しているエンコーディングは、ベース64 URLエンコードされた文字列です。 URLの安全な転送を可能にするためにbase-64への変更。あなたがリンクしているwikiの[** URL applications **](https://en.wikipedia.org/wiki/Base64#URL_applications)セクションを確認してください – Nkosi

+0

この回答を見るhttp://stackoverflow.com/a/26354677/782754 –

答えて

0

は、私は、カスタムJsonConverterを作成し、JsonSerializerSettings を経由して、それを導入おかげ マーティン

関連する問題