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

本文关键字:编码 newtonsoft json base64 反序列化 字符串 不一致 | 更新日期: 2023-09-27 18:09:34

我有一个包含JSON字符串的web服务返回的字符串。字符串中的一些属性是base64编码的。问题是它们不是以一致的方式进行base64编码的。根据https://en.wikipedia.org/wiki/Base64#Implementations_and_history, base64编码有一些变化。我知道我期望的是什么,我需要在解码和反序列化之前预处理某个属性值。为了做到这一点,我正在寻找JsonConvert.DeserializeObject()JsonSerializerSettings中的钩子。

要清楚,我需要反序列化的json包含多个base64编码的属性。有些有/+和填充,有些有_ -但没有填充。后者会导致异常:

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

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

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