使用fastJSON的PropertyFilter过滤属性后序列化
ProPertyFilter api:
package com.alibaba.fastjson.serializer;
public interface PropertyFilter extends SerializeFilter {
boolean apply(Object var1, String var2, Object var3);
}
可以通过实现PropertyFilter接口自定义根据Object或key或value来过滤JSON的内容。
使用示例:
现有JSON字符串string
{
"other":{
"747": "1",
"072": "1",
"990": "0",
"290": "0",
"294": "0",
"291": "0",
"736": "0",
"735": "0",
"732": "0",
"733": "1"
}
"message": {
"mai": "1",
"yong": {
"aa": "0",
"LINE_ID": "20"
}
}
}
执行代码:
String str = JSON.toJSONString(JSON.parse(string), new PropertyFilter() {
@Override
public boolean apply(Object source, String key, Object value) {
return !value.equals("0");//过滤值为“0”的键值对,return false就过滤掉不进行序列化
}
});
过滤结果:
{
"other":{
"747": "1",
"072": "1",
"733": "1"
}
"message": {
"mai": "1",
"yong": {
"quan": "20"
}
}
}
过滤器可以过滤掉满足自定义条件的复杂JSON的多重键值对。
本文为个人记录所用,如有侵权/错误,恳请指出 (╹▽╹)…