簡體   English   中英

在寧靜的服務中,Jersey將HashMap序列化為json的最簡單方法是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM