带有RESTEasy + JAXB + Jettison的JSON示例

RESTEasy使用Jettison JSON库JSON之间来回映射JAXB注释对象。 在本教程中,我们向您展示如何将带​​有JAXB注释的对象转换为JSON格式并将其返回给客户端。

杰克逊(Jackson)作为JSON提供者
您可能也有兴趣阅读此RESTEasy + Jackson示例。

1. RESTEasy + JAXB + Jettison

在RESTEasy中使用JSON ,您需要以下依赖项。

档案: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 XML提供程序

创建一个用JAXB注释的对象。 为什么要使用XML提供程序? 不用担心,稍后您将使用@BadgerFish将其转换为JSON格式。

package com.mkyong.rest;

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. JAX-RS

要返回JSON文件格式,请使用@BadgerFish@Produces("application/json")注释服务方法。

RESTEasy将自动处理JSON转换。

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.演示

当请求URI模式“ / json / movie / get ”时,将返回以下JSON文件。

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

下载源代码

下载它– JAX-RS-Download-JSON-JAXB-Example.zip (7 KB)

参考文献

  1. 杰蒂森官方网站
  2. JAXB官方网站
  3. RESTEasy JAXB提供程序
  4. 从JAX-RS下载的XML文件

翻译自: https://mkyong.com/webservices/jax-rs/download-json-from-jax-rs-with-jaxb-resteasy/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值