fastjson的值过滤器ValueFilter 原创发布于2018-10-15 16:20:25 阅读数 1462  收藏
项⽬中需要将前端传进的json数据清空值前后空格
两种实现⽅法
1.⼟⽅法迭代trim()
1.
RequestContext context = CurrentContext();
2.
InputStream in = (InputStream) ("requestEntity");
3.
String body = pyToString(in, Charset.forName("UTF-8"));
4.
JSONObject object = JSON.parseObject(body);
5.
if (object == null) object = new JSONObject();
6.
jsonParameterTrimObject(object);
7.
8.
/**
9.
* 清空JSONObject 值前后空格
10.
* @param object
11.
*/
12.
private void jsonParameterTrimObject(JSONObject object){
13.
for(String str: object.keySet()){
14.
Object o = (str);
15.
if(null != o){
16.
if(o instanceof String){ //值为字符串类型
17.
object.put(str,((String) o).trim()); //清空值前后空格
18.
}
19.
if(o instanceof JSONObject){ //值为JSON对象
20.
jsonParameterTrimObject((JSONObject)o);
21.
}
22.
if(o instanceof JSONArray) { //值为JSON数组
23.
jsonParameterTrimArray((JSONArray)o);
24.
}
25.
}
26.
}
27.
}
28.
29.
/**
30.
* 清空JSONArray 值前后空格
31.
* @param array
32.
*/
33.
private void jsonParameterTrimArray(JSONArray array){
34.
if(array.size() > 0){
35.
for(int i=0; i< array.size();i++){
36.
Object oa = (i);
37.
if(null != oa){
38.
if(oa instanceof String){ //值为字符串类型
39.
array.set(i,((String) oa).trim()); //清空值前后空格
40.
}
41.
if(oa instanceof JSONObject){ //值为JSON对象
42.
jsonParameterTrimObject((JSONObject)oa);
43.
}
44.
if(oa instanceof JSONArray) { //值为JSON数组
45.
jsonParameterTrimArray((JSONArray)oa);
46.
}
47.
}
48.
}
49.
}
50.
}
2.使⽤fastJson 值过滤器
1.
package cango.scf.filter;
2.
3.
import com.alibaba.fastjson.serializer.ValueFilter;
4.
5.
public class SimpleValueFilter implements ValueFilter {
6.
@Overridefastjson字符串转数组
7.
public Object process(Object object, String name, Object value) { 8.
if (value instanceof String) {
9.
value = ((String) value).trim();
10.
}
11.
return value;
12.
}
13.
}
14.
15.
RequestContext context = CurrentContext();
16.
InputStream in = (InputStream) ("requestEntity");
17.
if (in == null) {
18.
in = Request().getInputStream();
19.
}
20.
String body = pyToString(in, Charset.forName("UTF-8"));
21.
JSONObject object = JSON.parseObject(body);
22.
if (object == null) object = new JSONObject();
23.
24.
body = JSONString(object, new SimpleValueFilter());

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。