fastjson的值过滤器ValueFilter
项目中需要将前端传进的json数据清空值前后空格
两种实现方法
1.土方法 迭代trim()
- RequestContext context = RequestContext.getCurrentContext();
- InputStream in = (InputStream) context.get("requestEntity");
- String body = StreamUtils.copyToString(in, Charset.forName("UTF-8"));
- JSONObject object = JSON.parseObject(body);
- if (object == null) object = new JSONObject();
- jsonParameterTrimObject(object);
- /**
- * 清空JSONObject 值前后空格
- * @param object
- */
- private void jsonParameterTrimObject(JSONObject object){
- for(String str: object.keySet()){
- Object o = object.get(str);
- if(null != o){
- if(o instanceof String){ //值为字符串类型
- object.put(str,((String) o).trim()); //清空值前后空格
- }
- if(o instanceof JSONObject){ //值为JSON对象
- jsonParameterTrimObject((JSONObject)o);
- }
- if(o instanceof JSONArray) { //值为JSON数组
- jsonParameterTrimArray((JSONArray)o);
- }
- }
- }
- }
- /**
- * 清空JSONArray 值前后空格
- * @param array
- */
- private void jsonParameterTrimArray(JSONArray array){
- if(array.size() > 0){
- for(int i=0; i< array.size();i++){
- Object oa = array.get(i);
- if(null != oa){
- if(oa instanceof String){ //值为字符串类型
- array.set(i,((String) oa).trim()); //清空值前后空格
- }
- if(oa instanceof JSONObject){ //值为JSON对象
- jsonParameterTrimObject((JSONObject)oa);
- }
- if(oa instanceof JSONArray) { //值为JSON数组
- jsonParameterTrimArray((JSONArray)oa);
- }
- }
- }
- }
- }
2.使用fastJson 值过滤器
- package cango.scf.com.filter;
- import com.alibaba.fastjson.serializer.ValueFilter;
- public class SimpleValueFilter implements ValueFilter {
- @Override
- public Object process(Object object, String name, Object value) {
- if (value instanceof String) {
- value = ((String) value).trim();
- }
- return value;
- }
- }
- RequestContext context = RequestContext.getCurrentContext();
- InputStream in = (InputStream) context.get("requestEntity");
- if (in == null) {
- in = context.getRequest().getInputStream();
- }
- String body = StreamUtils.copyToString(in, Charset.forName("UTF-8"));
- JSONObject object = JSON.parseObject(body);
- if (object == null) object = new JSONObject();
- body = JSON.toJSONString(object, new SimpleValueFilter());
fastjson的值过滤器ValueFilter的更多相关文章
- FastJson前置属性过滤器
FastJson前置属性过滤器 /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p ...
- FastJson 输出值 首字母大小写问题
解决方案: 1. 如果你的项目由多个模块且为分布式部署, 则可考虑使用设置System.property 2. 一般只是极少数的代码出现此情况, 那么建议直接在你的单例Service初始化时, 在静态 ...
- fastjson null 值处理
偶然用到fastjson转换json 在前台用js解析竟然某些字段没有,曾经用过gson.联想到是不是相似gson默认将null值不显示了,找了下资料果真如此 直接上代码吧 import java.u ...
- HBase学习——4.HBase过滤器
1.过滤器 基础API中的查询操作在面对大量数据的时候是非常苍白的,这里Hbase提供了高级的查询方法:Filter.Filter可以根据簇.列.版本等更多的条件来对数据进行过滤,基于Hbase本身提 ...
- Hbase Filter过滤器查询详解
过滤器查询 引言:过滤器的类型很多,但是可以分为两大类——比较过滤器,专用过滤器 过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端: hbase过滤器的比较运算符: LE ...
- HBase学习之路 (六)过滤器
过滤器(Filter) 基础API中的查询操作在面对大量数据的时候是非常苍白的,这里Hbase提供了高级的查询方法:Filter.Filter可以根据簇.列.版本等更多的条件来对数据进行过滤,基于Hb ...
- HBase(七)Hbase过滤器
一.过滤器(Filter) 基础API中的查询操作在面对大量数据的时候是非常苍白的,这里Hbase提供了高级的查询方法:Filter.Filter可以根据簇.列.版本等更多的条件来对数据进行过滤,基于 ...
- Hbase(四) 过滤器查询
引言:过滤器的类型很多,但是可以分为两大类——比较过滤器,专用过滤器过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端: 一.hbase过滤器的分类 1.比较过滤器 行键过 ...
- Hbase过滤器
Hbase过滤器简介 HBase的基本API,包括增.删.改.查等,增.删都是相对简单的操作,与传统的RDBMS相比,这里的查询操作略显苍白,只能根据特性的行键进行查询(Get)或者根据行键的范围来查 ...
随机推荐
- java之Set接口(单列集合)
Set接口概述 java.util.Set 接口和 java.util.List 接口一样,同样继承自 Collection 接口,它与 Collection 接口中的方法基本一致,并没有对 Coll ...
- Flutter中高级培训
Flutter中高级培训 一.简介 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面.Flutter可以与现有的代码一起工作.本课程全面介绍Flutter ...
- 在CV尤其是CNN领域的一些想法
现在的CNN还差很多,未来满是变数. 你看,现在的应用领域也无非merely就这么几类----分类识别,目标检测(定位+识别),对象分割......,但是人的视觉可不仅仅这么几个功能啊!是吧. 先说说 ...
- Leetcode题解 - 树部分简单题目代码+思路(105、106、109、112、897、257、872、226、235、129)
树的题目中递归用的比较多(但是递归是真难弄 我
- IT兄弟连 HTML5教程 CSS3揭秘 CSS规则的组成
CSS和HTML一样都是由W3C制定的标准,本章中介绍的特性和功能还是来源于CSS1和CSS2(CSS2是根据CSS1扩展的).W3C也有新的版本更新,称为CSS3.虽然浏览器已经准备开始实现CSS3 ...
- Glide缓存流程
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/cPLkefpEb3w12-uoiqzTig作者:连凌能 Android上图片加载的解决方案有多 ...
- DOM介绍以及使用方法
DOM的基本讲解 一.DOM (Document Object Model)文档对象模型 1.有属性有方法 var person = { name:'派大星', fav:function(){ } } ...
- 【分析工具】阿里巴巴Arthas--线上问题分析利器
目录 1. Arthas是什么 2. Arthas能解决什么问题 3. 快速安装 第一步:下载 第二步:运行 第三步:选择进程 4. 实战使用 5. 总结 本博客转载自阿里开源的 Java 诊断工具 ...
- ASP.NET Repeater与Button 以及viewState 和 hyperLink
例如Repeater重复项 我们要在一个表里作删除以及修改 我们可以在Repeater中添加button控件前台代码:button有属性commandName 以及commandArgument 我们 ...
- 项目中使用http referer,为了盗取图片资源
项目背景:因为图片的数据是爬取的别人的图片,而且保存的数据仅仅是图片地址链接,为了减少数据存储和服务器压力,但是这就引发一个问题,有的图片地址没有做防盗处理,可以随意的下载使用:但有些图片的服务器做了 ...