Java 通过Rest从Glassfish获取的JSON对象无法使用Hashmap解析Polymoprh对象模型

Java 通过Rest从Glassfish获取的JSON对象无法使用Hashmap解析Polymoprh对象模型,java,json,rest,glassfish,polymorphism,Java,Json,Rest,Glassfish,Polymorphism,首先,我为这个复杂的标题感到抱歉,但我不知道我还能如何命名它 我正试图通过Rest从Glassfish服务器向客户机发送一个带有HashMap的对象 客户端接收一个JSON对象 /** * Testmethod * * @param id the identifier * @return a json object containing data of the tachoData object */ @POST @Path("test") @Produces(MediaType.APP

首先,我为这个复杂的标题感到抱歉,但我不知道我还能如何命名它

我正试图通过Rest从Glassfish服务器向客户机发送一个带有HashMap的对象

客户端接收一个JSON对象

/**
 * Testmethod
 *
 * @param id the identifier
 * @return a json object containing data of the tachoData object
 */
@POST
@Path("test")
@Produces(MediaType.APPLICATION_JSON)
public TransferObject getTestHashMap(String id) {
    return controller.getTestHashMap(id);
}
到目前为止,这是完美的

TransferObject具有以下哈希映射:

HashMap<String, ParentObject>
现在我想测试一下,如果我把子对象放到HashMap中,然后把它发送给客户端,会发生什么

PETransferObject r = new PETransferObject("Transfere");        
ChildObject o = ChildObject("Child001");
r.put("001TRansfer", o);
我用伪字符串填充对象,使JSON不为空


到目前为止还不错,现在的问题是:

如果地图定义如下:

HashMap<String, ChildObject>
HashMap
If工作正常,a获取正确的JSON对象

但是如果我想使用多态性,它就不起作用了。 有人能告诉我们原因吗?有解决办法吗?

“它不起作用”不是很好的描述。你看到了什么错误/行为?哦,好的,对不起。我所说的“它不工作”是指客户端的JSON对象不包含任何由ChildObject扩展的信息。示例:如果ChildObject插入一个继承属性,那么客户端将显示该信息。如果ChilObject写入自己的属性,它将不会显示在JSON对象中。
HashMap<String, ChildObject>