返回json格式 不忽略null字段


返回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試吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM