如何在 c++ 非托管代码中反序列化 byte[] 的 json 字符串?

How deserialize a json string of a byte[] in c++ unmanaged code a Json?

本文关键字:json 字符串 byte 反序列化 c++ 非托管代码      更新时间:2023-10-16

在非托管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;

客户端(C++非托管(http-get 读取:

{ "BinaryContent" : "AAA=" }

问题是如何反序列化它?

如何将"AAA="转换为0x0000?

第二个例子:如果服务器发送{0xFF,收到的0xFF}字符串是"ERE="。

这是 Base64 编码。 https://en.wikipedia.org/wiki/Base64

这是一种仅使用 ASCII 字符集表示任意字节的方法。

您可能希望找到一个可以解码 Base64 字符串并返回它所代表的字节的库。(或者可以自己编写该算法,但我不推荐它。