JAX-RS将HashMap转换为XML或JSON

时间:2015-07-27 21:24:21

标签: java rest jax-rs

我有一个DB接口,它返回HashMap。我正在编写JAX-RS REST接口以从此DB检索数据并在浏览器中以XML或JSON格式显示。

@XmlRootELement标记用于处理POJO到XML / JSON的转换。

我应该如何处理Map to XML / JSON转换?

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

考虑使用Rest Interface。我们定义Annotation" Produces"哪一个 可以生成不同的格式类型输出。在您的情况下,APPLICATION_JSON将生成JSON 和APPLICATION_XML将生成XML格式。所以做出相应的决定。

package : javax.ws.rs.PathParam;

@GET
@Path("/helloRest")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public MyPojo getHello();

您可以使用包中的Annotation控制XML格式的生成方式 javax.xml.bind.annotation。这将帮助您控制POJO对象名称和 其他验证,如果需要

@XmlRootElement(name="MyHello")
@XmlAccessorType(XmlAccessType.FIELD)
public  class MyPojo
{
    @XmlElement(name="id")
    private int id;
    @NotNull
    @Size(min = 1, max = 10, message = "Mandatory Field")
    @FormParam("code")
    private String code;
    @NotNull
    @Size(min = 1, max = 50, message = "Mandatory Field")
    @FormParam("name")
    private String name;
    @FormParam("status")
    private String status;


JSON Format: 

{"id":48,"code":"dfgfdgd","name":"aaaaaaaaa","status":"dfgfdgdd"}


XML Format:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <MyHello><id>168</id>
    <code>AS3</code>
    <name>gfhfgh</name>
    <status>A</status>
</MyHello>