返回json格式 不忽略null字段

 发布于 353天前  作者 king666  271 次浏览  复制  上一个帖子  下一个帖子
 标签: json

如题,一个实体的某个字段如果为null,在转json后,没有这个属性,需要有什么设置可以显示空数据字段

11 回复
@Ok("json:full")

@wendal 是加到对应字段还是实体,还是哪?

@qq_640d75e3 说的不是入口方法的返回吗?

@wendal 例如Jackson的@JsonInclude

实体没有这种配置

Json.toJson方法的话

Json.toJson(obj, JsonFormat.full());

@wendal 个人觉得nutz需要关注一下https://nutz.cn/yvr/t/7fmfpb9oguivrqck7add0u7i1r这个问题

我添加了@Ok("json:full")之后null字段还是没有显示

@IocBean
@Ok("json:full")
@Fail("http:500")
@At("/facManageCar")
public class FacManagerCarModule extends BaseModule{

@At
public Object queryFacManageCar(FacManageCarReq req){
FacManageCarResp resp = new FacManageCarResp();
Pager pager = dao.createPager(req.page,20);
Cnd where = Cnd.NEW();
where.and("facId","=",req.factoryId);
if(req.carStatus==1){
where.and("carStatus","=",false);
}else if(req.carStatus==2){
where.and("carStatus","=",true);
}
//车牌号
if(Strings.isNotBlank(req.carLicence)){
where.and("carLicence","like","%"+req.carLicence+"%");
}
//车主手机号
if(Strings.isNotBlank(req.cellPhone)){
where.and("cellPhone","like","%"+req.cellPhone+"%");
}
//车主姓名
if(Strings.isNotBlank(req.realName)){
where.and("realName","like","%"+req.realName+"%");
}
//保养到期
if(req.carNextTime!=null){
where.and("carNextTime","<=",req.carNextTime);
}
//保险到期
if(req.insuranceEndDate!=null){
where.and("insuranceEndDate","<=",req.insuranceEndDate);
}
//年检到期
if(req.checkEndDate!=null){
where.and("checkEndDate","<=",req.checkEndDate);
}
//根据字段名字排序
if (req.sortType == null) {
where.orderBy("createTime", "desc");
} else {
where.orderBy("convert (" + req.sortType.getName() + " using gbk)",
"" + req.sortType.getSorts() + "");
}
List <FacManageCarView> fmcvs = dao.query(FacManageCarView.class, where,pager); int count =dao.count(FacManageCarView.class,where);
if(fmcvs==null||fmcvs.size()==0){
resp.requestCode=-1;
return resp;
}
List<FacManageCarEntity> fmces = new ArrayList<FacManageCarEntity>();
List<Dictionary> dcs = dao.query(Dictionary.class,Cnd.where("type","=","car_state"));
for(int i=0;i<fmcvs.size();i++){
FacManageCarEntity fmce = new FacManageCarEntity();
fmce.SNumber = (req.page-1)*20+i+1;//序号赋值
int code;
if(fmcvs.get(i).isCarStatus()==false){
code = 1;
}else{
code = 2;
}
for(int j=0;j<dcs.size();j++){
if(dcs.get(j).getVal().equals(""+code)){
fmce.carStatusDesc = dcs.get(j).getItems();//车辆状态描述
break;
}
}
fmce.fmcv = fmcvs.get(i);
fmces.add(fmce);
}
pager.setRecordCount(count);
resp.pageCount = pager.getPageCount();
resp.count = count;
resp.fmces = fmces;
return resp;
}
@At
public Object fetchFacManageCar(FacManageCarReq req){
FacManageCarResp resp = new FacManageCarResp();
//车辆id
if(req.Id<=0){
resp.requestCode=-1;
return resp;
}
FacManageCarView fmcv = dao.fetch(FacManageCarView.class,Cnd.where("id","=",req.Id));
if(fmcv==null){
resp.requestCode=-1;
return resp;
}
FacManageCarEntity fmce = new FacManageCarEntity();
fmce.fmcv = fmcv;
int code;
if(fmcv.isCarStatus()==false){
code = 1;
}else{
code = 2;
}
Dictionary dc = dao.fetch(Dictionary.class,Cnd.where("type","=","car_state").and("val","=",code));
fmce.carStatusDesc = dc.getItems();//车辆使用状态描述
resp.requestCode=0;
resp.fmce = fmce;
return resp;
}
@At
public Object queryFacManageRecord(FacManageCarReq req){
FacManageCarResp resp = new FacManageCarResp();
Pager pager = dao.createPager(req.page, 20);
if(req.carId<=0){
resp.requestCode = -1;
return resp;
}
Cnd where = Cnd.where("carId","=",req.carId);
if (req.sortType == null) {
where.orderBy("createTime", "desc");
} else {
where.orderBy("convert (" + req.sortType.getName() + " using gbk)",
"" + req.sortType.getSorts() + "");
}
List<RepairRecord> rrs = dao.query(RepairRecord.class,where,pager);
if(rrs==null||rrs.size()==0){
resp.requestCode =-1;
return resp;
}
int count = dao.count(RepairRecord.class,where);
pager.setRecordCount(count);
List<FacManageRepairRecordEntity> fmrres = new ArrayList<FacManageRepairRecordEntity>();
List<Dictionary> dr = dao.query(Dictionary.class,Cnd.where("type","=","repairrecord_type"));
for(int i=0;i<rrs.size();i++){
FacManageRepairRecordEntity fmrre = new FacManageRepairRecordEntity();
fmrre.rr = rrs.get(i);
fmrre.SNmuber = (req.page-1)*20+i+1;
for(Dictionary d : dr){
if(d.getVal().equals(""+rrs.get(i).getType()+1)){
fmrre.typeDesc = d.getItems();//维修保养记录类型描述
}
}
fmrres.add(fmrre);
}
resp.requestCode=0;
resp.fmrres = fmrres;
resp.count = count;
resp.pageCount = pager.getPageCount();
return resp; }
/**
* 维修保养项目接口
* @author fjd
* @param req
* @return
*/
@At
public Object queryFacManageOrderItme(FacManageOrderItmeReq req){
FacManageOrderItmeResp resp = new FacManageOrderItmeResp();
if(req.id<=0){
resp.requestCode = -1;
return resp;
}
List<OrderItme> ois = dao.query(OrderItme.class, Cnd.where("rrId","=",req.id));
if(ois==null||ois.size()==0){
resp.requestCode = -1;
return resp;
}
int count = dao.count(OrderItme.class,Cnd.where("rrId","=",req.id));
List<FacManageOrderItmeEntity> fmoies = new ArrayList<FacManageOrderItmeEntity>();
List<Dictionary> dlist = dao.query(Dictionary.class,Cnd.where("type","=","repairrecord_type"));
for(int i=0;i<ois.size();i++){
FacManageOrderItmeEntity fmoie = new FacManageOrderItmeEntity();
fmoie.oi = ois.get(i);
fmoie.SNumber = (req.page-1)*20+i+1;//序号
for(Dictionary d : dlist){
if(d.getVal().equals(""+ois.get(i).getType())){
fmoie.typeDesc = d.getItems();//维修保养记录描述
}
}
fmoies.add(fmoie);
}
resp.count = count;
resp.fmoies = fmoies;
return resp;
}

}

好复杂, 先弄个demo试吧

返回json格式 不忽略null字段的更多相关文章

  1. webapi返回json格式优化 转载https://www.cnblogs.com/GarsonZhang/p/5322747.html

    一.设置webapi返回json格式 在App_Start下的WebApiConfig的注册函数Register中添加下面这代码 1 config.Formatters.Remove(config.F ...

  2. WebApi返回Json格式字符串

    WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉都不怎么好. 先贴一下, 网上给的常用方法吧. 方法一:(改配置法) 找到Global.asax文件,在 ...

  3. webapi返回json格式优化

    一.设置webapi返回json格式 在App_Start下的WebApiConfig的注册函数Register中添加下面这代码 config.Formatters.Remove(config.For ...

  4. ajax访问服务器返回json格式

    使用ajax访问服务器返回多条数据,比如返回一个表中的所有数据,页面该如何处理呢?如何获取数据呢?一直不会用ajax返回json格式,今天研究了下,分享给大家~ 首先需要引用服务,点击项目右键,添加引 ...

  5. SSH返回Json格式的数据

      在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就 ...

  6. springmvc通过ajax异步请求返回json格式数据

    jsp 首先创建index.jsp页面 <script type="text/javascript"> $(function () { $("#usernam ...

  7. (转)WebApi返回Json格式字符串

    原文地址:https://www.cnblogs.com/elvinle/p/6252065.html WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉 ...

  8. 返回json格式数据乱码

    本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody @RequestMapping(value = "getListByTime", ...

  9. 3.自定义返回json格式的数据给前台(自定义Controller类中的Json方法)

    在mvc的项目中,我们前台做一些操作时,后台要返回一些结果给前台,这个时候我们就需要有一个状态来标识到底是什么类型的错误, 例如: 执行删除的时候,如果操作成功(1行受影响),我们需要返回状态为1并输 ...

随机推荐

  1. 阿里云 Ubuntu16.04 部署 LAMP

    1.更新软件源 sudo apt-get update 2.安装Apache sudo apt-get install apache2 3.查看Apache是否安装成功 apache2 –v 如下所示 ...

  2. 事物及exec

    事物3要出不多讲: 1.BEGIN TRANSACTION--开启事务 2.COMMIT TRANSACTION--事务执行 3.ROLLBACK TRANSACTION--事务回滚 俩总捕捉事物的方 ...

  3. 转——深度学习之BN算法(Batch Normailization)

    Batch Normalization 学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50866313 作者:hjimce 一.背景意义 ...

  4. vi或vim下按方向键改变方向变成ABCD这类字符

    遇到这种问题肯定很恼火,按方向键改变文本的方向有时候变成输入ABCD,有时候并不是我们想要的结果 解决方法: $ echo "set nocp" >> ~/.vimrc ...

  5. js校验密码,不能为空的8-20位非纯数字或字母的密码

    jsp: <div class="mui-input-row"> <label>密码</label><!-- id='password' ...

  6. Hidden Markov Models笔记

    Andrew Ng CS229 讲义: https://pan.baidu.com/s/12zMYBY1NLzkluHNeMNO6MQ HMM模型常用于NLP.语音等领域. 马尔科夫模型(Markov ...

  7. (转)AIX下修改用户最大进程数

    AIX下修改用户最大进程数 原文:http://blog.csdn.net/feichideche/article/details/39498555 使用AIX时候,切换用户,发现进程一直挂起,查看用 ...

  8. (转)TCP连接的11种状态变迁

    自:http://blog.csdn.net/engrossment/article/details/8104482 http://blog.csdn.net/xiaofei0859/article/ ...

  9. pat04-树5. File Transfer (25)

    04-树5. File Transfer (25) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue We have ...

  10. pat1052. Linked List Sorting (25)

    1052. Linked List Sorting (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A ...