Java 映射的序列化和反序列化<;对象,对象>;
也许我现在只是在装傻,但我一直在努力奋斗 我正在编写一个与另一个库交互的网络应用程序。 此库生成的消息的格式为Java 映射的序列化和反序列化<;对象,对象>;,java,networking,serialization,gson,deserialization,Java,Networking,Serialization,Gson,Deserialization,也许我现在只是在装傻,但我一直在努力奋斗 我正在编写一个与另一个库交互的网络应用程序。 此库生成的消息的格式为Map。这些消息现在需要序列化。 我不知道这些对象是什么类型的。它们只在能够处理它们的两个对象之间传输,但为此需要序列化 然而,我很难理解如何做到这一点。我已经试过使用Gson,但不知道如何解决它 代码如下所示: public interface Path extends Serializable{} public interface Network{ public Map&
Map
。这些消息现在需要序列化。
我不知道这些对象是什么类型的。它们只在能够处理它们的两个对象之间传输,但为此需要序列化
然而,我很难理解如何做到这一点。我已经试过使用Gson,但不知道如何解决它
代码如下所示:
public interface Path extends Serializable{}
public interface Network{
public Map<Path, Object> getSendMessages();
public void receiveMessage(Map<Path, Object> message);
}
public class Main {
public static void main(String[] args) {
Network nw1 = NetworkProvider.getNetwork();
Network nw2 = NetworkProvider.getNetwork();
//I don't know what these actually do with the messages.
while(true) {
Map<Path, Object> message = nw1.getSendMessages();
//__________What to do here?__________________
SerializedMessage serializedMessage = ....
Map<Path, Object> deserializedMessage = ....
//____________________________________________
nw2.receiveMessage(deserializedMessage);
}
}
}
公共接口路径扩展可序列化{}
公共接口网{
公共映射getSendMessages();
公共无效接收消息(映射消息);
}
公共班机{
公共静态void main(字符串[]args){
Network nw1=NetworkProvider.getNetwork();
Network nw2=NetworkProvider.getNetwork();
//我不知道这些信息到底是怎么回事。
while(true){
Map message=nw1.getSendMessages();
//__________在这里做什么__________________
SerializedMessage SerializedMessage=。。。。
映射反序列化消息=。。。。
//____________________________________________
nw2.接收消息(反序列化消息);
}
}
}
}您可以使用Jackson
中的ObjectMapper
轻松序列化和反序列化对象Map
这是序列化的一个示例:
ObjectMapper mapper = new ObjectMapper();
String jsonResult = mapper.writerWithDefaultPrettyPrinter()
.writeValueAsString(message);
有关详细信息,请查看此链接: