我有一个DB接口,它返回HashMap。我正在编写JAX-RS REST接口以从此DB检索数据并在浏览器中以XML或JSON格式显示。
@XmlRootELement
标记用于处理POJO到XML / JSON的转换。
我应该如何处理Map to XML / JSON转换?
任何帮助表示赞赏!
答案 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>