Как преобразовать табличный формат или эквивалентный по формату Python формат данных в формат msgpack в Stack Overflow

(Обратите внимание: я не могу встраивать изображения сюда. У меня недостаточно очков для этого. Может кто-нибудь помочь мне с этим.)

Я понимаю, как преобразовать структуру, соответствующую следующему табличному формату (Struct1), в формат msgpack:

Struct1

Для этого я использую следующий код:

#include <sstream>
#include <iostream>
#include <msgpack.hpp>

inline std::ostream& hex_dump(std::ostream& o, std::string const& v) {
std::ios::fmtflags f(o.flags());
o << std::hex;
o << "b\'";
for (auto c : v) {
o << "\\x" << std::setw(2) << std::setfill('0') << (static_cast<int>(c) & 0xff);
}
o << "\'";
o.flags(f);
return o;
}

struct your_type {
int a;
int b;
MSGPACK_DEFINE(a, b);
};

int main() {
// packing
std::stringstream ss;
std::stringstream sshex;
std::string ssnew;
std::vector<std::map<std::string, your_type>> v
{
{
{ "t",{ 1, 2} }

},
//{
{ "value",{6, 5 } }
}
};

msgpack::pack(ss, v);auto oh = msgpack::unpack(ss.str().data(), ss.str().size());
// JSON output
std::cout << oh.get() << std::endl;

std::cout << std::endl;
// hex dump output
hex_dump(sshex, ss.str()) << std::endl;

std::cout << sshex.str();

ssnew = sshex.str();

return ssnew;

}

Теперь я хотел бы попробовать следующее преобразовать в тот же формат:

Я хочу добавить каждую строку в цикле, передать значения через цикл в структуру, а затем преобразовать в формат msgpack. Снова повторите процесс после добавления другой строки. Я не хочу статически определять значения, как раньше. Например:

Первый раз — данные, переданные для преобразования (Struct2):

Struct2

Второй раз — данные, переданные для преобразования (Struct3):
Struct3

Я попытался с использованием Int для т и массив INT для Val. Я не могу идти дальше. Я исследовал библиотеку msgpack, но тщетно. Может кто-нибудь, пожалуйста, помогите мне, как я могу продолжить это? Даже небольшое руководство было бы очень полезно.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]