代码如下:
public class SeckillResult<T> {
private boolean success;
private T data;
private String error;
public SeckillResult(boolean success, T data) {
this.success = success;
this.data = data;
}
public SeckillResult(boolean success, String error) {
this.success = success;
this.error = error;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
}
public class Exposer {
private boolean exposed;
private String md5;
private long seckillId;
private long now;
private long start;
private long end;
@Override
public String toString() {
return "Exposer{" +
"exposed=" + exposed +
", md5='" + md5 + '\'' +
", seckillId=" + seckillId +
", now=" + now +
", start=" + start +
", end=" + end +
'}';
}
public Exposer(boolean exposed, String md5, long seckillId) {
this.exposed = exposed;
this.md5 = md5;
this.seckillId = seckillId;
}
public Exposer(boolean exposed, long seckillId, long now, long start, long end) {
this.exposed = exposed;
this.seckillId = seckillId;
this.now = now;
this.start = start;
this.end = end;
}
public Exposer(boolean exposed, long seckillId) {
this.exposed = exposed;
this.seckillId = seckillId;
}
}
@RequestMapping(value = "/{seckillId}/exposer",
method = RequestMethod.GET,
produces = {"application/json;charset=UTF-8"})
@ResponseBody
public SeckillResult<Exposer> exposer(@PathVariable Long seckillId){
SeckillResult<Exposer> result;
try
{
Exposer exposer = seckillService.exportSeckillUrl(seckillId);
result = new SeckillResult<Exposer>(true,exposer);
}catch (Exception e){
logger.error(e.getMessage(),e);
result = new SeckillResult<Exposer>(false,e.getMessage());
}
return result;
}
exposer已正常返回了结果Exposer{exposed=true, md5='eeeedda1968c55747a15124c56f674a5', seckillId=1000, now=0, start=0, end=0}
result转化为json时报错:
com.fasterxml.jackson.databind.JsonMappingException:
No serializer found for class org.seckill.dto.Exposer
and no properties discovered to create BeanSerializer (
to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) )
(through reference chain: org.seckill.dto.SeckillResult["data"])
看不出什么问题,请大家帮忙看一下
Exposer 类没有set和get方法
没有人帮忙,先顶一下
json串中使用的不是=而是:
楼主:
自定义类没有序列化
No serializer found for class org.seckill.dto.Exposer
and no properties discovered to create BeanSerializer
json字符串拼错了,应该用:连接不是=
Exposer 继承 BeanSerializer
如果没有 Exposer 可以继承 Serialiable
楼主:可以试一下