在Groovy中使用JSONBuilder排除空值
发布时间:2020-12-14 16:26:32 所属栏目:大数据 来源:网络整理
导读:是否可以使用默认的JsonBuilder库在Groovy中创建 JSON值以排除对象的所有空值?比如杰克逊在Java中通过注释类来排除空值. 一个例子是: { "userId": "25","givenName": "John","familyName": null,"created": 1360080426303} 哪个应该打印为: { "userId": "
是否可以使用默认的JsonBuilder库在Groovy中创建
JSON值以排除对象的所有空值?比如杰克逊在Java中通过注释类来排除空值.
一个例子是: { "userId": "25","givenName": "John","familyName": null,"created": 1360080426303 } 哪个应该打印为: { "userId": "25","created": 1360080426303 } 解决方法
不确定它是否适合您,因为我的方法适用于带有List属性的Map:
def map = [a:"a",b:"b",c:null,d:["a1","b1","c1",null,[d1:"d1",d2:null]]] def denull(obj) { if(obj instanceof Map) { obj.collectEntries {k,v -> if(v) [(k): denull(v)] else [:] } } else if(obj instanceof List) { obj.collect { denull(it) }.findAll { it != null } } else { obj } } println map println denull(map) 收益率: [a:a,b:b,d:[a1,b1,c1,[d1:d1,d2:null]]] [a:a,[d1:d1]]] 过滤空值后,您可以将Map渲染为JSON. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |