fastjson的序列化过滤器

前端之家收集整理的这篇文章主要介绍了fastjson的序列化过滤器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. /** * \* Created: liuhuichao * \* Date: 2018/3/30 * \* Time: 下午4:24 * \* Description:测试SerializeFilter * \ */
  2. public class SerializeTest {
  3.  
  4.  
  5. /** * 是否过滤字段 * PropertyFilter根据PropertyName情况,来返回是否需要序列号此字段 */
  6. @Test
  7. public void propertyFilterTest(){
  8. PropertyFilter filter =new PropertyFilter() {
  9. @Override
  10. public boolean apply(Object object,String name,Object value) {
  11. if("name".equals(name)){
  12. if(value.toString().equals("admin")){
  13. return false;
  14. }
  15. }
  16. return true;
  17. }
  18. };
  19.  
  20. User admin=new User(1,"admin");
  21. User normalUser=new User(2,"LHC");
  22. System.out.println("admin:"+JSONObject.toJSONString(admin,filter));
  23. System.out.println("lhc:"+JSONObject.toJSONString(normalUser,filter));
  24. }
  25.  
  26. /** * 序列化时修改Key */
  27. @Test
  28. public void nameFilterTest(){
  29. NameFilter filter=new NameFilter() {
  30. @Override
  31. public String process(Object object,Object value) {
  32. if("id".equals(name)){
  33. return "userId";
  34. }
  35. if("name".equals(name)){
  36. return "userName";
  37. }
  38. return name;
  39. }
  40. };
  41. User admin=new User(1,"admin");
  42. System.out.println("admin:"+JSONObject.toJSONString(admin,filter)); // -->>>>> admin:{"userId":1,"userName":"admin"}
  43.  
  44. }
  45.  
  46. /** * 序列化时候修改value */
  47. @Test
  48. public void valueFilterTest(){
  49. ValueFilter filter=new ValueFilter() {
  50. @Override
  51. public Object process(Object object,Object value) {
  52. if("id".equals(name)){
  53. return ((long)value)*10;
  54. }
  55. return value;
  56. }
  57. };
  58. User admin=new User(1,filter)); // -->>>>> admin:{"id":10,"name":"admin"}
  59.  
  60. }
  61.  
  62. /** * 序列化前面加上kv */
  63. @Test
  64. public void beforeFilterTest(){
  65. BeforeFilter filter=new BeforeFilter() {
  66. @Override
  67. public void writeBefore(Object object) {
  68. writeKeyValue("location","beijing");
  69. }
  70. };
  71. User admin=new User(1,filter)); // -->>>>> admin:{"location":"beijing","id":1,"name":"admin"}
  72.  
  73. }
  74.  
  75. /** * 序列号后面加上kv */
  76. @Test
  77. public void afterFilterTest(){
  78. AfterFilter filter=new AfterFilter() {
  79. @Override
  80. public void writeAfter(Object object) {
  81. writeKeyValue("location",filter)); // -->>>>> admin:{"id":1,"name":"admin","location":"beijing"}
  82.  
  83. }
  84.  
  85.  
  86.  
  87. }

猜你在找的Json相关文章