各种json库对属性过滤都支持,但使用起来不够灵活。本文介绍的方法通过读取原生的 json字符串实现属性动态过滤,所以不需要依赖具体的json库。
例子如下:
String json = "{\"name\":\"mi米\",\"age\":30,\"weight\":100.1,\"Children\":[\"a\",\"b\",\"c\"],\"address\":{ \"city\":\"GuangZhou\",\"pro\":\"GuangDong\"}}";
Assert.assertEquals("{\"name\":\"mi米\",\"weight\":100.1,\"address\":{ \"city\":\"GuangZhou\" }",
JsonUtils.removeProperty(json, new String[]{"name", "weight", "address.city"}, true));
String json = "{\"name\":\"mi米\",\"age\":30,\"weight\":100.1,\"Children\":[\"a\",\"b\",\"c\"],\"address\":{ \"city\":\"GuangZhou\",\"pro\":\"GuangDong\"}}";
Assert.assertEquals("{\"name\":\"mi米\",\"weight\":100.1,\"address\":{ \"city\":\"GuangZhou\" }",
JsonUtils.removeProperty(json, new String[]{"age", "Children", "address.pro"}, false));