當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
(3)-JSONObject的过滤设置
生活随笔
收集整理的這篇文章主要介紹了
(3)-JSONObject的过滤设置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們通常對一個json串和java對象進行互轉時,經常會有選擇性的過濾掉一些屬性值。例如下面的類:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | public class Person { ????private String name; ????private String address; ????private String sex; ????public String getAddress() ????{ ????????return address; ????} ????public void setAddress(String address) ????{ ????????this.address = address; ????} ????public String getName() ????{ ????????return name; ????} ????public void setName(String name) ????{ ????????this.name = name; ????} ????public String getSex() ????{ ????????return sex; ????} ????public void setSex(String sex) ????{ ????????this.sex = sex; ????} } |
如果我想過濾address屬性怎么辦?
方法一:實現JSONString接口
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import net.sf.json.JSONString; public class Person implements JSONString { ????private String name; ????private String sex; ????private String address; ????public String toJSONString() ????{ ????????return "{\"name\":\"" + name + "\",\"sex\":\"" + sex + "\"}"; ????} ????public String getAddress() ????{ ????????return address; ????} ????public void setAddress(String address) ????{ ????????this.address = address; ????} ????public String getName() ????{ ????????return name; ????} ????public void setName(String name) ????{ ????????this.name = name; ????} ????public String getSex() ????{ ????????return sex; ????} ????public void setSex(String sex) ????{ ????????this.sex = sex; ????} } import net.sf.json.JSONObject; public class Test { public static void main(String args[]) { ?????? Person person = new Person(); ????????person.setName("swiftlet"); ????????person.setSex("men"); ????????person.setAddress("china"); ????????JSONObject json = JSONObject.fromObject(person); ????????System.out.println(json.toString()); ????} } |
?
方法二:設置jsonconfig實例,對包含和需要排除的屬性進行添加或刪除。
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import net.sf.json.JSONObject; import net.sf.json.JsonConfig; public class Test { ????public static void main(String args[]) ????{ ????????Person person = new Person(); ????????person.setName("swiftlet"); ????????person.setSex("men"); ????????person.setAddress("china"); ????????JsonConfig jsonConfig = new JsonConfig(); ????????jsonConfig.setExcludes(new String[] ????????{ "address" }); ????????JSONObject json = JSONObject.fromObject(person, jsonConfig); ????????System.out.println(json.toString()); ????} } |
?
方法三:使用propertyFilter實例過濾屬性。
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.PropertyFilter; public class Test { ????public static void main(String args[]) ????{ ????????Person person = new Person(); ????????person.setName("swiftlet"); ????????person.setSex("men"); ????????person.setAddress("china"); ????????JsonConfig jsonConfig = new JsonConfig(); ????????jsonConfig.setJsonPropertyFilter(new PropertyFilter() { ????????????public boolean apply(Object source, String name, Object value) ????????????{ ????????????????return source instanceof Person && name.equals("address"); ????????????} ????????}); ????????JSONObject json = JSONObject.fromObject(person, jsonConfig); ????????System.out.println(json.toString()); ????} } |
總結
以上是生活随笔為你收集整理的(3)-JSONObject的过滤设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日志分析logstash插件-grok详
- 下一篇: Java Programming Tes