Как десериализовать строку json байта [] в неуправляемом коде c ++ a Json? - PullRequest
0 голосов
/ 08 февраля 2020

В неуправляемой программе на 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?

2nd Примеры: IF SERVER отправляет полученную строку {0xFF, 0xFF} "ERE =".

1 Ответ

3 голосов
/ 08 февраля 2020

Это кодировка Base64. https://en.wikipedia.org/wiki/Base64

Это способ представления произвольных байтов с использованием только набора символов ASCII.

Вероятно, вы захотите найти библиотеку, которая может декодировать Base64. строка и вернет вам байты, которые он представляет. (Или можно написать этот алгоритм самостоятельно, но я не рекомендую его.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...