功能:解决复杂map对象下数据获取处理的问题。
依赖:
用旧版的
话不多说 直接上代码,对于不同类型的值的获取:
public class OgnlUtils {
/**
* @return java.lang.Boolean
* @throws
* @author zhengwentao
* @Description 获取String类型
* @date 2019/11/8 10:31
* @params [ognl, root]
*/
public static String getString(String ognl, Map<String, Object> root) {
try {
return Ognl.getValue(ognl, root).toString();
} catch (OgnlException e) {
throw new RuntimeException(e);
}
}
/**
* @return java.lang.Boolean
* @throws
* @author zhengwentao
* @Description 获取数字类型
* @date 2019/11/8 10:31
* @params [ognl, root]
*/
public static Number getNumber(String ognl, Map<String, Object> root) {
Number result = null;
try {
Object value = Ognl.getValue(ognl, root);
if (value != null) {
if (value instanceof Number) {
result = (Number) value;
} else if (value instanceof String) {
result = new BigDecimal((String) value);
}
}
return result;
} catch (OgnlException e) {
throw new RuntimeException(e);
}
}
/**
* @return java.lang.Boolean
* @throws
* @author zhengwentao
* @Description 获取Boolean类型
* @date 2019/11/8 10:31
* @params [ognl, root]
*/
public static Boolean getBoolean(String ognl, Map<String, Object> root) {
Boolean result = null;
try {
Object value = Ognl.getValue(ognl, root);
if (value != null) {
if (value instanceof Boolean) {
result = (Boolean) value;
} else if (value instanceof String) {
result = ((String) value).equalsIgnoreCase("true") ? true : false;
} else if (value instanceof Number) {
result = ((Number) value).intValue() == 1 ? true : false;
}
}
return result;
} catch (OgnlException e) {
throw new RuntimeException(e);
}
}
/**
* @return java.lang.Boolean
* @throws
* @author zhengwentao
* @Description 获取List<Map < String , Object>>类型
* @date 2019/11/8 10:31
* @params [ognl, root]
*/
public static List<Map<String, Object>> getListMap(String ognl, Map<String, Object> root) {
List<Map<String, Object>> result = null;
try {
result = (List<Map<String, Object>>) Ognl.getValue(ognl, root);
if (result == null || result.size() == 0) {
result = new ArrayList<>();
}
} catch (OgnlException e) {
throw new RuntimeException(e);
}
return result;
}
/**
* @return java.lang.Boolean
* @throws
* @author zhengwentao
* @Description 获取List<String>类型
* @date 2019/11/8 10:31
* @params [ognl, root]
*/
public static List<String> getListString(String ognl, Map<String, Object> root) {
List<String> result = null;
try {
result = (List<String>) Ognl.getValue(ognl, root);
if (result == null || result.size() == 0) {
result = new ArrayList<>();
}
} catch (OgnlException e) {
throw new RuntimeException(e);
}
return result;
}
}