fastjson的值过滤器ValueFilter
2024-09-03 15:29:41
项目中需要将前端传进的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());
最新文章
- 走进vue.js(一)
- 发送http请求get方法
- Codeforces Round #248 (Div. 2) A. Kitahara Haruki&#39;s Gift
- top free综合监控工具
- So many good projects for studying C programming lanuage.
- django 学习-6 定义模型--数据库的使用
- ffmpeg 的tutorial
- VS2010中<;无法打开包括文件:“iostream.h”:>;错误解决方法
- android动效开篇
- 4、深入理解Bean
- [转载]或许您还不知道的八款Android开源游戏引擎
- 项目实战5—企业级缓存系统varnish应用与实战
- Java-Iterator总结
- [模板] 次短路 | bzoj1726-[Usaco2006Nov]Roadblocks第二短路
- PHP全栈学习笔记18
- Java strictfp
- int和string之间的转换
- shiro登录实现自定义路径跳转
- [剑指Offer]27-二叉树的镜像
- Android应用icon和闪屏splash的尺寸
热门文章
- Linux下动态切换EHCI控制器下端口的速率(即切换为12M)
- 集合系列 List(四):LinkedList
- javascript截取字符串的最后几个字符
- #w29 2019年大前端技术周刊
- Oracle - SPM固定执行计划(二)
- 阿里面试实战题1----TreeSet,HashSet 区别
- Flask 教程 第六章:个人主页和头像
- iOS随记
- USB免驱RFID读写器编程解析之一:智能卡篇
- [logstash.outputs.elasticsearch] retrying failed action with response code: 403