c# - 使用 .NET 进行 JSON 和 Base64 编码

标签 c# .net json c#-4.0 base64

我有一个相当标准的方法,可以在通过线路将字符串发送到客户端之前对字符串进行 Base64 编码。当通信采用 SOAP 时,一切工作正常,但现在一切都通过 .NET 版本的 JSON 运行,base64 解码会出现错误:

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

我注意到 .NET 在字符串的开头和结尾添加了一个\",所以我删除了它们,然后检查了长度,发现它不是 4 的倍数,所以我根据需要填充了开头和结尾带有等号 - 没有任何帮助。无论我做什么,我仍然会遇到上面提到的相同错误。

我陷入了困境,没有其他人对类似问题的回答有帮助 - 有什么想法(并且,不,我无法摆脱 .NET...)?

来自服务器的字符串是:

zkWv1UuGZX08g1s/k/Rp4edZJ/QkuQO88HxpWtpsSfZt4kdWotuqzDy7+YgrB/JUdmuU7FB7thtK1yah+bW0CL3NPP/WGeQHjL/pvpoaOVAiDODnXOvONwuMINpSTa6HvxHj5mJxDvIoEhUwzchFfxfjnDW6tGutBRCBhGHYTK4=

在我修改之前客户端收到的字符串是:

\"zkWv1UuGZX08g1s\/k\/Rp4edZJ\/QkuQO88HxpWtpsSfZt4kdWotuqzDy7+YgrB\/JUdmuU7FB7thtK1yah+bW0CL3NPP\/WGeQHjL\/pvpoaOVAiDODnXOvONwuMINpSTa6HvxHj5mJxDvIoEhUwzchFfxfjnDW6tGutBRCBhGHYTK4=\"

最佳答案

问题是 JSON 转义了一堆字符,而返回的字符串转义了它自己的字符集。这里有一些关于流式传输 WCF JSON 响应的精彩帖子,可以帮助返回,但没有任何内容可以解决传入问题。我从 JSON 切换到 XML。

关于c# - 使用 .NET 进行 JSON 和 Base64 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9662273/

相关文章:

c# - 为什么允许从父类(super class)到子类的隐式转换?

.net - Nunit 添加自定义属性

html - 在 Java 中使用 Jsoup 将 HTML 表解析为 JSON

c# - 访问者模式——接口(interface)与抽象类

C# GridView 动态构建带有文本框 ontextchanged 的​​列

c# - 妥善配置QuickTime控件

c# - 从引用列表中查找列表中的重复项

c# - 在特定 OU Active Directory 中搜索用户

c# - 使用 Nancy 返回包含有效 Json 的字符串

javascript - 检查 json 对象是否存在并保存到本地存储中