Dav*_*ide 7 json jax-rs marshalling unmarshalling
我正在使用Jersey(jax-rs)来构建一个REST丰富的应用程序.
一切都很好,但我真的不明白如何为日期和数字配置JSON编组/解组选项.
我有一个User类:
@XmlRootElement
public class User {
private String username;
private String password;
private java.util.Date createdOn;
// ... getters and setters
}
Run Code Online (Sandbox Code Playgroud)
当createdOn序列化属性时,我得到一个这样的字符串:'2010-05-12T00:00:00 + 02:00',但是我需要使用特定的日期模式来编组和解组日期.
有人知道怎么做吗?
bdo*_*han 16
你可以写一个XmlAdapter:
您的特定XmlAdapter看起来像:
import java.util.Date;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class JsonDateAdapter extends XmlAdapter<String, Date> {
@Override
public Date unmarshal(String v) throws Exception {
// TODO convert from your format
}
@Override
public String marshal(Date v) throws Exception {
// TODO convert to your format
}
}
Run Code Online (Sandbox Code Playgroud)
然后在您的日期属性中设置以下注释:
@XmlJavaTypeAdapter(JsonDateAdapter.class)
public getDate() {
return date;
}
Run Code Online (Sandbox Code Playgroud)
您得到的是日期 ISO 8601 格式,这是一个标准。Jersey 会在服务器上为您解析它。对于 javascript,这里是js date 的扩展来解析它。
更新链接已失效:尝试另一个解析器,请参阅帮助解析 Javascript 中的 ISO 8601 日期
| 归档时间: |
|
| 查看次数: |
8375 次 |
| 最近记录: |