NutzCN Logo
问答 json序列化不输出空值
发布于 732天前 作者 tiankongkm 535 次浏览 复制 上一个帖子 下一个帖子
标签:
	public static void main(String[] args) {
		AppShortVedio vedio = new AppShortVedio();
		System.out.println(vedio.getShortVedioIdStr());
		System.out.println(Json.toJson(vedio,JsonFormat.full()));
	}
null
[DEBUG] 2017-12-14 10:54:17,291 org.nutz.castor.Castors.reload(Castors.java:115) - Using 95 castor for Castors
{
   "shortVerdioUrl": "http://zhiboshejiao.test.upcdn.net/null",
   "shortVedioHeadUrl": "http://zhiboshejiao.test.upcdn.net/null",
   "shortVedioTimeLength": 0,
   "shortVedioIsLook": false,
   "shortVedioPrice": 0,
   "shortVedioId": 0,
   "shortVedioGoodNumber": 0,
   "shortVedioForwardNumber": 0,
   "shortVedioCheckStatus": 0,
   "userId": 0,
   "shortVedioCommentNumber": 0
}

shortVedioIdStr 是 string 为啥没输出~~~

8 回复

pojo贴一下看看

@wendal

public String toJson(JsonFormat jf) {
	      Map<String,Object> map = Lang.obj2map(this);
	      map.put("shortVedioHeadUrl",Globals.baseUrl+shortVedioHeadUrl);
	      map.put("shortVerdioUrl",Globals.baseUrl+shortVerdioUrl);
	      System.out.println(map);
	      return Json.toJson(map, jf);
	}

我加了这个方法 然后我发现转成map的时候 值为null的就没了。。

 Mirror<?> mirror = Mirror.me(obj.getClass());
        Field[] flds = mirror.getFields();
        for (Field fld : flds) {
            Object v = mirror.getValue(obj, fld);
            if (null == v) {
                continue;
            }

看了下源码,为啥要跳过。。。

我最近也遇见过,发觉当整个字段搜索的值都为NuLL时,在前台JSp中就不返回这个字段

来自炫酷的 NutzCN

我就干脆将为NuLL的字段都改为空字符

来自炫酷的 NutzCN

默认null 转 空串 有吗

可以自己写一个
我写过全树生成
不支持map 只支持new XXX

包括list 加入二个
用迭代器模式。

添加回复
请先登陆
回到顶部