Resteasy转换JAXB和json

本文介绍如何使用 Resteasy 将 Java 对象转换为 JSON 格式,并提供了具体的 Maven 依赖配置、POJO 类定义及 RESTful 服务实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

resteasy其实是个很好用的类库,下面介绍下如何使用Resteay去
在JAXB和JSON中进行转换。注意resteasy使用的是Jettison JSON library
(地址:http://jettison.codehaus.org/)

1) pom.xml文件的设置
<repositories>
<repository>
<id>JBoss repository</id>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
</repositories>

<dependencies>

<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.2.1.GA</version>
</dependency>

<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>2.2.0.GA</version>
</dependency>

<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jettison-provider</artifactId>
<version>2.2.0.GA</version>
</dependency>

</dependencies>

2)写一个类,使用JAXB

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "movie")
public class Movie {

String name;
String director;
int year;

@XmlElement
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@XmlElement
public String getDirector() {
return director;
}

public void setDirector(String director) {
this.director = director;
}

@XmlAttribute
public int getYear() {
return year;
}

public void setYear(int year) {
this.year = year;
}

}





3) 然后我们就可以把上面的pojo类转变为json了,看下jboss的reseteasy是如何做的,


import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import org.jboss.resteasy.annotations.providers.jaxb.json.BadgerFish;

@Path("/json/movie")
public class JSONService {

@BadgerFish
@GET
@Path("/get")
@Produces("application/json")
public Movie getMovieInJSON() {

Movie movie = new Movie();
movie.setName("Transformers: Dark of the Moon");
movie.setDirector("Michael Bay");
movie.setYear(2011);

return movie;

}

}


4 当访问“/json/movie/gets"时,就显示对应的json了

{
"movie":
{
"@year":"2011",
"director":{
"$":"Michael Bay"
},
"name":{
"$":"Transformers: Dark of the Moon"
}
}
}


至于这个@BadgerFish有点怪怪的,有待进一步学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值