【发布时间】:2011-12-24 14:39:31
【问题描述】:
最近我使用restlet 将一些信息发布为Web 服务。 码头服务器中的相同代码主机,但在不同的服务器中我得到了 2 个版本的结果。
我想当我调用网络服务“http://.....api/currencies.json”时,它会使用杰克逊扩展将结果转换为 json 格式,但我不知道为什么会有不同的版本。
有谁能帮我解决问题,谢谢!
这是代码,我使用restlet扩展:json、xml、jackson、xstream。
@Get("json|xml")
public List<CurrencyInfoDTO> represent() {
return ...;
}
@XStreamAlias("currency")
public class CurrencyInfoDTO {
protected String code;
protected String sign;
....
}
输出版本 1:
{
"list": [
{
"currency": [
{
"code": "CNY",
"sign": "¥",
"rate": 1
},
{
"code": "HKD",
"sign": "HK$",
"rate": 0.8145
},
]
}
]
}
输出版本 2:
[
{
"code": "CNY",
"sign": "¥",
"rate": 1
},
{
"code": "HKD",
"sign": "HK$",
"rate": 0.8145
}
]
版本 1 的服务器是亚马逊 AWS 中的主机,版本 2 的服务器是我用于开发的本地机器。
我认为版本 1 输出为对象,版本 2 输出为数组。
我尝试在我的本地机器中删除jackson扩展,它会输出为版本1,所以我猜版本1使用xstream扩展,版本2使用jackson扩展,但是为什么restlet使用不同的扩展来处理相同的方法输出?
非常感谢! 瑞克
【问题讨论】: