Вы можете проверить протокол amef , пример кодирования C ++ в amef будет выглядеть так:
//Create a new AMEF object
AMEFObject *object = new AMEFObject();
//Add a child string object
object->addPacket("This is the Automated Message Exchange Format Object property!!","adasd");
//Add a child integer object
object->addPacket(21213);
//Add a child boolean object
object->addPacket(true);
AMEFObject *object2 = new AMEFObject();
string j = "This is the property of a nested Automated Message Exchange Format Object";
object2->addPacket(j);
object2->addPacket(134123);
object2->addPacket(false);
//Add a child character object
object2->addPacket('d');
//Add a child AMEF Object
object->addPacket(object2);
//Encode the AMEF obejct
string str = new AMEFEncoder()->encode(object,false);
Декодирование в java было бы похоже на
string arr = amef encoded byte array value;
AMEFDecoder decoder = new AMEFDecoder()
AMEFObject object1 = AMEFDecoder.decode(arr,true);
Реализация протокола имеет кодеки как для C ++, так и для Java, интересная часть в том, что она может сохранять представление класса объекта в виде пар имя-значение,
Мне понадобился аналогичный протокол в моем последнем проекте, когда я случайно наткнулся на этот протокол, я фактически изменил базовую библиотеку в соответствии с моими требованиями. Надеюсь, это поможет вам.