![](/img/trans.png)
[英]What's the equivalent of Jersey Restful web service(Java) in C#?
[英]What's the simpliest way for Jersey serialize HashMap to json in a restful service?
关于返回序列化的HashMap的问题很多,但我找不到很好的答案。
现在,我只想简单地创建一个如下的REST服务:
@XmlElement(name = "Calibration")
private HashMap<String, Double> entry = new HashMap<String, Double>();
然后在我的REST服务中:
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/entry")
public HashMap<String, Double> current() {
System.out.println("calibration request");
entry.put("test", 3.00);
return entry;
}
调用服务时,它将引发javax.ws.rs.WebApplicationException:
com.sun.jersey.api.MessageException:找不到Java类java.util.HashMap,Java类型java.util.HashMap和MIME媒体类型application / json的消息正文编写器。
我的pom.xml,如果有用的话:
<dependency>
<groupId>com.sun.grizzly</groupId>
<artifactId>grizzly-servlet-webserver</artifactId>
<version>1.9.18-i</version>
</dependency>
<dependency>
<groupId>com.sun.grizzly</groupId>
<artifactId>grizzly-comet-webserver</artifactId>
<version>1.9.46</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-grizzly</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.9.1</version>
</dependency>
我正在使用Grizzly作为webContainer。
Jackson可能是这里最简单的选择(Jersey JSON模块内置了Jackson支持)。 您可以通过web.xml
或配置对象来配置POJO JSON支持(请参阅POJO支持 )。
注意:最新的Jersey 1.x版本是1.17.1,请考虑使用此版本。
最好的方法是将HashMap映射到一个简单的bean中,然后返回该bean,而不是HashMap。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.