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);
有关详细信息,请查看此链接: