如何在 C++ 非托管代码 a Json 中反序列化 byte[] 的 json 字符串?
How deserialize a json string of a byte[] in c++ unmanaged code a Json?
在非托管 C++ 程序中,必须反序列化 json 通过 tcp 从服务器读取的数据。
服务器端(用 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;
客户端(使用 C++ 非托管)http-get read :
{ "BinaryContent" : "AAA=" }
问题是如何反序列化它?
如何将 "AAA=" 转换为 0x0000?
第二个例子:IF SERVER send { 0xFF, 0xFF } string received is "ERE=".
那是Base64编码。 https://en.wikipedia.org/wiki/Base64
这是一种仅使用 ASCII 字符集就可以表示任意字节的方法。
您可能想要找到一个可以解码 Base64 字符串并返回它所代表的字节的库。 (或者自己写那个算法也是可以的,但是我不推荐。)
在非托管 C++ 程序中,必须反序列化 json 通过 tcp 从服务器读取的数据。
服务器端(用 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;
客户端(使用 C++ 非托管)http-get read :
{ "BinaryContent" : "AAA=" }
问题是如何反序列化它?
如何将 "AAA=" 转换为 0x0000?
第二个例子:IF SERVER send { 0xFF, 0xFF } string received is "ERE=".
那是Base64编码。 https://en.wikipedia.org/wiki/Base64
这是一种仅使用 ASCII 字符集就可以表示任意字节的方法。
您可能想要找到一个可以解码 Base64 字符串并返回它所代表的字节的库。 (或者自己写那个算法也是可以的,但是我不推荐。)