在非托管C ++程序中必须反序列化由tcp从服务器读取的json。
服务器端(C#制造):
public class DUMMY
{
public byte[] BinaryContent { get; set; }
}
... inside a http get controller ...
DUMMY d = new DUMMY();
d.BinaryContent = new byte[] { 0x00, 0x00 }; // 0x00 is a sample, in real it contains a binary file
string sd = JsonConvert.SerializeObject(d);
return sd;
CLIENT SIDE(C ++制成,不受管理)http-get阅读:
{ "BinaryContent" : "AAA=" }
问题是如何反序列化?
如何将“ AAA =“转换为0x0000?
第二个示例:如果IF SERVER发送{0xFF,0xFF}收到的字符串是“ ERE =”。
这是Base64编码。 https://en.wikipedia.org/wiki/Base64
这是一种仅使用ASCII字符集即可表示任意字节的方法。
您可能想找到一个可以对Base64字符串进行解码并将其表示的字节还给您的库。 (或者可以自己编写该算法,但我不建议这样做。)