我有一個非常具體的要求。 我有一個Java應用程序,我必須將字節數組轉換爲具有像int,String這樣的java類型的消息。消息的結構在C++中定義如下 -轉換字節數組爲java類型
struct SMSMessage{
int id;
std::string name;
std::string source;
std::string destination;
std::string timestamp;
int type;
int status;
std::string message;
int mesg_type;
int mesg_sub_type; };
我在我的java應用程序中收到的是字節數組。 我不知道是否C++應用程序正在使用proto緩衝區或任何其他方式轉換爲字節數組。 但是,如果我用字節逐字節解析數組,我可以得到這些值。 例如 -
ByteBuffer.wrap(Arrays.copyOfRange(byteArray, 0, 4)).getInt();
//byteArray -- reference to the incoming byte array
// 0, 4-- range of bytes for integer type
這條線將返回值正確的ID(在結構第一個屬性是INT)。
我的問題是 - 如果我寫這個結構的原型,我可以解析這個消息到Java嗎?
是否有任何其他的方式來將字節數組轉換爲Java類型?(沒有使用像谷歌的protobuf庫)
我忘了提,解決方案必須與java 5和java 8 – Gunwant
這聽起來像這個字節數組可能不是一個協議緩衝區。如果它被編碼爲協議緩衝區,那麼讀取前四個字節將不會直接爲您提供第一個整數字段,除非出現不可能的巧合。 –