C# 如何使用newtonsoft json反序列化具有不一致base64编码的字符串

C# 如何使用newtonsoft json反序列化具有不一致base64编码的字符串,c#,json,serialization,base64,C#,Json,Serialization,Base64,我有一个从包含JSON字符串的web服务返回的字符串。 字符串中的某些属性是base 64编码的。问题是它们的base64编码方式不一致。根据,base64编码有一些变化。我知道我期望的是什么,我需要在解码反序列化前预处理某个属性值。我正在JsonConvert.DeserializeObject()或JsonSerializerSettings中寻找钩子,以便实现这一点 需要说明的是,我需要反序列化的json包含多个使用Base64编码的属性。有些有/+和填充,有些有u-和没有填充。后者导致了

我有一个从包含JSON字符串的web服务返回的字符串。 字符串中的某些属性是base 64编码的。问题是它们的base64编码方式不一致。根据,base64编码有一些变化。我知道我期望的是什么,我需要在解码反序列化前预处理某个属性值。我正在
JsonConvert.DeserializeObject()
JsonSerializerSettings
中寻找钩子,以便实现这一点

需要说明的是,我需要反序列化的json包含多个使用Base64编码的属性。有些有/+和填充,有些有u-和没有填充。后者导致了一个例外:

“输入不是有效的Base-64字符串,因为它包含非Base-64字符串 字符、两个以上填充字符或非法字符 在填充字符中。”


我创建了一个定制的JsonConverter,并通过JsonSerializerSettings引入它 谢谢
Martin

我创建了一个自定义JsonConverter,并通过JsonSerializerSettings引入它 谢谢
Martin

那些看起来很奇怪的编码是base-64 url编码的字符串。对base-64的修改,允许在URL中安全传输。检查你链接的wiki部分,看看这个答案那些看起来奇怪的编码是base-64 url编码的字符串。对base-64的修改,允许在URL中安全传输。查看您链接的wiki部分查看此答案