【发布时间】:2015-09-29 03:21:59
【问题描述】:
我也有一堂课
[Serializable]
public class ExternalAccount
{
public string Name { get;set;}
}
我已经把它转换成 JSON 格式
{\"Name\":\"XYZ\"}
然后我对 JSON 字符串进行了 base64 编码
然后我通过网络发送到 Web api 服务
我收到了 base64 编码的字符串,现在需要将其反序列化回原来的对象,如上(ExternalAccount)所以我首先做一个
byte[] byteArray = Convert.FromBase64String(base64EncodedExternalAccount);
下一步是什么?
我已经尝试了以下,但返回 null...
using (MemoryStream memoryStream = new MemoryStream(byteArrayToConvert))
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
// set memory stream position to starting point
memoryStream.Position = 0;
// Deserializes a stream into an object graph and return as a object.
return binaryFormatter.Deserialize(memoryStream) as ExternalAccount;
}
非常感谢任何指针/提示。
【问题讨论】:
-
BinaryFormatter无法从 JSON 字符串反序列化对象。它是 .NET 特定的二进制序列化格式。您能否展示如何将 JSON 字符串编码为 BASE64 的完整示例? -
您真的需要以 base-64 字符串的形式发布到您的 API 吗?如果可能,请更新您的 API,以便您可以发送纯 JSON。
-
感谢 Hal - 对未来有所了解。
-
@LukeH - 是的,我需要对字符串进行 base64 编码,因为我在上面的代码示例中省略了大量属性,我想确保对象在传输过程中不会被意外弄乱
标签: c# json base64 deserialization json-deserialization