JAX-RS中,JSON转换为对象,Integer默认值如何设为null?

Cfan 2013-01-30 04:03:12
@Consumes("application/json")
@Path("nimei")
@POST
@Produces("application/json")
public List<ST_ShelfNewStore> selectST_ShelfNewStoreByST_ShelfNewStore(ST_ShelfNewStore st_ShelfNewStore) {
System.out.println(st_ShelfNewStore.toString());
List<ST_ShelfNewStore> list= st_ShelfNewStoreDao.selectByObj(st_ShelfNewStore);
return list==null?new ArrayList<ST_ShelfNewStore>():list;
}

传过来的JSON为:{\"loginID\":1,\"branchCD\":null,\"shelfNo\":null,\"stage\":null,\"range\":null,\"stack\":null,\"productCD\":null,\"productName\":null,\"specName\":null,\"brandName\":null,\"categoryCD\":11,\"labelVarietyCD\":null}

但是转换出来的对象属性值:
loginID=1 branchCD=0 shelfNo=0 stage=0 range=0 stack=0 productCD= productName= specName= brandName= categoryCD=11 labelVarietyCD=0

我想把integer格式的值为null的属性通过json转换以后还是null,不是为0。请问如何能够实现
...全文
441 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
艾小仙 2013-01-31
  • 打赏
  • 举报
回复

User user = new User();
        user.setId(null);
        user.setPassword("123");
        //这里serializeNulls()会序列化为null的字段
        Gson gson = new GsonBuilder().serializeNulls().create();
        return gson.toJson(user);
失落夏天 2013-01-31
  • 打赏
  • 举报
回复
引用 9 楼 senliu1506 的回复:
引用 7 楼 AA5279AA 的回复:引用 楼主 senliu1506 的回复:Java code?123456789@Consumes("application/json") @Path("nimei") @POST @Produces("application/json") public List<ST_ShelfNewStore> sele……
晕,我是让你把输入的字符串正则替换一下然后再匹配。 你这种问题我也遇到过,我就是这个解决的。。 或者Bean的set方法里面加一个判断,如果遇到为空的就添加0
Cfan 2013-01-31
  • 打赏
  • 举报
回复
引用 7 楼 AA5279AA 的回复:
引用 楼主 senliu1506 的回复:Java code?123456789@Consumes("application/json") @Path("nimei") @POST @Produces("application/json") public List<ST_ShelfNewStore> selectST_ShelfNewStoreBy……
正则写在哪?
Cfan 2013-01-31
  • 打赏
  • 举报
回复
引用 6 楼 awl910213 的回复:
Java code?12345678910111213@GET @Produces(MediaType.TEXT_PLAIN) public String getAllUser() { List<User> list = null; String str = null; try { ……
我现在是json转实体对象
失落夏天 2013-01-31
  • 打赏
  • 举报
回复
引用 楼主 senliu1506 的回复:
Java code?123456789@Consumes("application/json") @Path("nimei") @POST @Produces("application/json") public List<ST_ShelfNewStore> selectST_ShelfNewStoreByST_ShelfNewStore(ST_S……
匹配出来的结果用正则替换。。
艾小仙 2013-01-31
  • 打赏
  • 举报
回复

@GET
@Produces(MediaType.TEXT_PLAIN)
public String getAllUser() {
List<User> list = null;
String str = null;
try {
list = userService.loadAll();
str = new Gson().toJson(list);
} catch (Exception e) {
logger.error("load all exception : ", e);
}
return str;
}

这是jersey的代码
用gson转的list
Cfan 2013-01-31
  • 打赏
  • 举报
回复
@Consumes("application/json") @Path("nimei") @POST @Produces("application/json") public List<ST_ShelfNewStore> selectST_ShelfNewStoreByST_ShelfNewStore(ST_ShelfNewStore st_ShelfNewStore) {} 我现在是这样,自动json转换
Cfan 2013-01-31
  • 打赏
  • 举报
回复
引用 3 楼 awl910213 的回复:
不用他默认的json格式转换,用gson转成json返回试试看
求代码
艾小仙 2013-01-31
  • 打赏
  • 举报
回复
不用他默认的json格式转换,用gson转成json返回试试看
Cfan 2013-01-31
  • 打赏
  • 举报
回复
不是null是0,我想让它为null。
xulqif 2013-01-30
  • 打赏
  • 举报
回复
Integer不是原型数据,是对象型数据,默认值当然是null了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧