在使用JSONSerializer.toJava将json转换为java对象后,始终将日期字段的值作为当前日期
我正在使用JSONSerializer.toJava将以下json转换为java对象在使用JSONSerializer.toJava将json转换为java对象后,始终将日期字段的值作为当前日期,java,json,serialization,jsonserializer,Java,Json,Serialization,Jsonserializer,我正在使用JSONSerializer.toJava将以下json转换为java对象 { "sessionId": "d792-54fd8a87-ses-Administrator-2200-0", "campaignId": 2, "callBackTime": "2015-08-08 07:23:00", "isSelfCallBack": "false", "userId": "a1", "callBackHandlerType": "voi
{
"sessionId": "d792-54fd8a87-ses-Administrator-2200-0",
"campaignId": 2,
"callBackTime": "2015-08-08 07:23:00",
"isSelfCallBack": "false",
"userId": "a1",
"callBackHandlerType": "voice.campaign.callback.handler",
"callBackProperties":
{
"customerId": "112",
"phone": "33334444"
}
}
我的json配置根类描述如下
public class ProxyAddCallbackRequestBean extends ProxySessionRequestBean {
private static final long serialVersionUID = 1L;
private Integer campaignId;
private Date callBackTime;
private boolean isSelfCallBack;
private String userId;
private String callBackHandlerType;
private Map<String, String> callBackProperties;
public Integer getCampaignId() {
return campaignId;
}
public void setCampaignId(Integer campaignId) {
this.campaignId = campaignId;
}
public Date getCallBackTime() {
return callBackTime;
}
public void setCallBackTime(Date callBackTime) {
this.callBackTime = callBackTime;
}
public boolean isSelfCallBack() {
return isSelfCallBack;
}
public void setSelfCallBack(boolean isSelfCallBack) {
this.isSelfCallBack = isSelfCallBack;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getCallBackHandlerType() {
return callBackHandlerType;
}
public void setCallBackHandlerType(String callBackHandlerType) {
this.callBackHandlerType = callBackHandlerType;
}
public Map<String, String> getCallBackProperties() {
return callBackProperties;
}
public void setCallBackProperties(Map<String, String> callBackProperties) {
this.callBackProperties = callBackProperties;
}
}
公共类ProxyAddCallbackRequestBean扩展了ProxySessionRequestBean{
私有静态最终长serialVersionUID=1L;
私有整数ID;
私人日期回拨时间;
私有布尔回调;
私有字符串用户标识;
私有字符串callBackHandlerType;
私有映射回调属性;
公共整数getCampaignId(){
返回活动ID;
}
public void setCampaignId(整数campaignId){
this.campaign=campaign;
}
公共日期getCallBackTime(){
返回回调时间;
}
public void setCallBackTime(日期callBackTime){
this.callBackTime=callBackTime;
}
公共布尔值isSelfCallBack(){
返回ISSELF回调;
}
public void setSelfCallBack(布尔值isSelfCallBack){
this.isSelfCallBack=isSelfCallBack;
}
公共字符串getUserId(){
返回用户标识;
}
public void setUserId(字符串userId){
this.userId=userId;
}
公共字符串getCallBackHandlerType(){
返回callBackHandlerType;
}
public void setCallBackHandlerType(字符串callBackHandlerType){
this.callBackHandlerType=callBackHandlerType;
}
公共映射getCallBackProperties(){
返回回调属性;
}
public void setCallBackProperties(映射callBackProperties){
this.callBackProperties=callBackProperties;
}
}
转换为java对象后,callBackTime
值设置为当前时间,而其他字段的值正确
我是json新手,您能帮我找出哪里做错了吗。假设您正在使用,快速扫描文档并没有任何迹象表明它会自动将字符串转换为日期。因此,您需要解析日期。如果你很高兴的话,这个依赖关系有很好的声誉。否则,如果您显示的日期是预期的,则类似于:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public void setCallBackTime(String rawTime) {
this.callBackTime = df.parse(rawTime);
}
你应该开始了。(Javadoc for)
(请注意,您引用的日期看起来像,但不是ISO 8601)。什么库是json-lib-2.3-jdk15.JAR的一部分?json-lib-2.3-jdk15.JAR json字符串的格式更易于阅读。