分享一个对象前后去空格的工具类
调用方式示例:
// 第一个参数是需要去空格的对象,第二个是返回的类型
WarrantyDTO warrantyDTO = JsonTrimUtil.jsonTrim(warrantyDTO, WarrantyDTO.class)
package com.picccdyf.sff.inter.infrastructure.util;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import cwzx.cdyf.common.util.JsonUtil;
import java.util.Iterator;
import java.util.Map;
/**
* description: JsonUtil 对象去掉里面值的前后空格
*
* @author zhilong.xu
* @since 2020-10-09 16:31:14
*/
public class JsonTrimUtil {
/**
* 需要调用的方法:进行去掉对象属性值前后空格
*
* @param object 需要传入的对象
* @param clazz 返回什么类型就写什么类型
* @param <T> 返回类型
* @return T
* @author zhilong.xu
*/
public static <T> T jsonTrim(Object object, Class<T> clazz) {
String jsonStr = JsonUtil.beanToJson(object);
JSONObject jsonObject = jsonTrim(JSONObject.parseObject(jsonStr));
String jsonStrTrim = JSONObject.toJSONString(jsonObject);
return JsonUtil.jsonToBean(jsonStrTrim, clazz);
}
/**
* 转换json
*
* @param jsonObject JSONObject
* @return T
* @author zhilong.xu
*/
public static JSONObject jsonTrim(JSONObject jsonObject) {
Iterator<Map.Entry<String, Object>> iterator = jsonObject.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Object> entry = iterator.next();
Object value = entry.getValue();
if (null != value) {
if (value instanceof String) {
jsonObject.put(entry.getKey(), ((String) value).trim());
} else if (value instanceof JSONObject) {
jsonTrim((JSONObject) value);
} else if (value instanceof JSONArray) {
jsonArrayTrim((JSONArray) value);
}
}
}
return jsonObject;
}
/**
* 转换json
*
* @param jsonArray JSONArray
* @return T
* @author zhilong.xu
*/
private static void jsonArrayTrim(JSONArray jsonArray) {
if (jsonArray.size() > 0) {
for (int i = 0; i < jsonArray.size(); i++) {
Object object = jsonArray.get(i);
if (null != object) {
if (object instanceof String) {
jsonArray.set(i, ((String) object).trim());
} else if (object instanceof JSONObject) {
jsonTrim((JSONObject) object);
} else if (object instanceof JSONArray) {
jsonArrayTrim((JSONArray) object);
}
}
}
}
}
private JsonTrimUtil() {
}
}