java jaxb json_使用JAXB注释,Jackson和Spring生成JSON

我正在尝试使用Spring 4实现REST服务 .

该应用程序使用Java 7构建,并在Tomcat 7上运行 .

REST方法将返回JSON中的客户对象 . 该应用程序是注释驱动的 .

Customer类具有JAXB注释 . Jackson 的 jar 出现在阶级路径中 . 根据我的理解,Jackson将使用JAXB注释生成JSON .

The Customer Class :

@XmlRootElement(name = "customer")

public class Customer {

private int id;

private String name;

private List favBookList;

@XmlAttribute

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

@XmlElement

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@XmlElementWrapper(name = "booklist")

@XmlElement(name="book")

public List getFavBookList() {

return favBookList;

}

public void setFavBookList(List favBookList) {

this.favBookList = favBookList;

}

}

我已将REST服务类注释为@RestController(根据Spring 4)

The REST method to return a customer object in JSON:

@RequestMapping(value="/customer.json",produces="application/json")

public Customer getCustomerInJSON(){

Customer customerObj = new Customer();

customerObj.setId(1);

customerObj.setName("Vijay");

ArrayList favBookList = new ArrayList();

favBookList.add("Book1");

favBookList.add("Book2");

customerObj.setFavBookList(favBookList);

return customerObj;

}

The result I expected, when I hit the URL :

{"id":1,"booklist":{"book":["Book1","Book2"]},"name":"Vijay"}

What I get:

{"id":1,"name":"Vijay","favBookList":["Book1","Book2"]}

Jackson 似乎忽略了Customer类中的JAXB注释 @XmlElementWrapper(name = "booklist") 和 @XmlElement(name="book") 以上的getFavBookList()方法

我错过了什么吗?

需要指导 . 谢谢 .

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值