1 json对象转换成实体
//json对象转换成实体
public static <T> T JSONObjectToEntity(JSONObject obj,T entity){
Field[] fields = entity.getClass().getDeclaredFields(); // 获取实体类的所有属
try {
for (int j = 0; j < fields.length; j++) { // 遍历所有属性
String name = fields[j].getName(); // 获取属性的名字
//判断JSONObject是否包含该字段
if(!obj.containsKey(name)){
continue;
}
String param=obj.getString(name); //获取JSONObject里的值
name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法
String type = fields[j].getGenericType().toString(); // 获取属性的类型
if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名
Method m = entity.getClass().getMethod("set"+name,String.class);
m.invoke(entity, param);
}
if (type.equals("class java.lang.Integer")) {
Method m = entity.getClass().getMethod("set"+name,Integer.class);
m.invoke(entity, Integer.parseInt(param));
}
if (type.equals("class java.lang.Boolean")) {
Method m = entity.getClass().getMethod("set"+name,Boolean.class);
m.invoke(entity, Boolean.valueOf(param));
}
if (type.equals("class java.util.Date")) {
Date date=dateFormat1.parse(param);
Method m = entity.getClass().getMethod("set"+name,Date.class);
m.invoke(entity,date);
}
// 如果有需要,可以仿照上面继续进行扩充,再增加对其它类型的判断
}
} catch (NoSuchMethodException e) {
log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
} catch (SecurityException e) {
log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
} catch (IllegalAccessException e) {
log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
} catch (IllegalArgumentException e) {
log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
} catch (InvocationTargetException e) {
log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
} catch (ParseException e) {
log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
}
return entity;
}
2 将实体转换成map
//将实体转换成map
public static <T> Map<String,Object> beanToMap(T bean){
Map<String,Object> map=new HashMap<String,Object>();
Field[] fields = bean.getClass().getDeclaredFields(); // 获取实体类的所有属
try {
for (int j = 0; j < fields.length; j++) { // 遍历所有属性
String name = fields[j].getName(); // 获取属性的名字
String UpperName = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法
String type = fields[j].getGenericType().toString(); // 获取属性的类型
if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名
Method m = bean.getClass().getMethod("get" + UpperName);
String value = (String) m.invoke(bean); // 调用getter方法获取属性值
if (value == null) {
map.put(name, "");
}else{
map.put(name, value);
}
}
if (type.equals("class java.lang.Integer")) {
Method m = bean.getClass().getMethod("get" + UpperName);
Integer value = (Integer) m.invoke(bean);
if (value == null) {
map.put(name, 0);
}else{
map.put(name, value);
}
}
if (type.equals("class java.lang.Boolean")) {
Method m = bean.getClass().getMethod("get" + UpperName);
Boolean value = (Boolean) m.invoke(bean);
if (value == null) {
map.put(name, false);
}else{
map.put(name, value);
}
}
if (type.equals("class java.util.Date")) {
Method m = bean.getClass().getMethod("get" + UpperName);
Date value = (Date) m.invoke(bean);
if (value == null) {
map.put(name, new Date());
}else{
map.put(name, value);
}
}
// 如果有需要,可以仿照上面继续进行扩充,再增加对其它类型的判断
}
} catch (NoSuchMethodException e) {
log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
} catch (SecurityException e) {
log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
} catch (IllegalAccessException e) {
log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
} catch (IllegalArgumentException e) {
log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
} catch (InvocationTargetException e) {
log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
+ e.getMessage(),"ERROR");
}
return map;
}
3 将中文转换成utf-8
//将中文转换成utf-8
public static String encodeUTF8(String xmlDoc){
String str="";
try {
str=URLEncoder.encode(xmlDoc,"utf-8");
return str;
} catch (Exception e) {
str=e.toString();
}
return str;
}
4 将utf-8转换成中文字符
//将utf-8转换成中文字符
public static String decodeUTF8(String str){
String xmlDoc="";
try {
xmlDoc=URLDecoder.decode(str,"utf-8");
return xmlDoc;
} catch (Exception e) {
xmlDoc=e.toString();
}
return xmlDoc;
}
5 对于登录等输入操作进行殊字符判断
//对于登录等输入操作进行殊字符判断
public static boolean sql_inj(String str) {
String inj_str = "':and:exec:insert:select:delete:update:count:*:%:chr:mid:master:truncate:char:declare:;:or 1:-:+:,";
String inj_stra[] = inj_str.split(":");
for (int i = 0; i < inj_stra.length; i++) {
if (str.indexOf(inj_stra[i])!=-1) {
return false;
}
}
return true;
}
6 xml转化为string
/**
* @Description:xml转化为string
* Author:
* Date: 2016/3/27
* Time: 19:53
* Version: 0.1
* document转换成string
* @param document
* @return
*/
public String toStringFromDoc(Document document) {
String result = null;
if (document != null) {
StringWriter strWtr = new StringWriter();
StreamResult strResult = new StreamResult(strWtr);
TransformerFactory tfac = TransformerFactory.newInstance();
try {
Transformer t = tfac.newTransformer();
t.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
t.setOutputProperty(OutputKeys.INDENT, "yes");
t.setOutputProperty(OutputKeys.METHOD, "xml"); // xml, html,text
t.setOutputProperty(
"{http://xml.apache.org/xslt}indent-amount", "4");
t.transform(new DOMSource(document.getDocumentElement()),
strResult);
} catch (Exception e) {
log(e);
}
result = strResult.getWriter().toString();
try {
strWtr.close();
} catch (IOException e) {
log(e);
}
}
return result;
}
7 根据string 生成xml文件
/**
* @Description:根据string 生成xml文件
* Author:
* Date: 2016/3/27
* Time: 19:53
* Version: 0.1
* @param xmlString
* @param fileName
*/
public void buildXmlFile(String xmlString,String fileName){
try{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// step 2:获得具体的dom解析器
DocumentBuilder db = dbf.newDocumentBuilder();
StringReader stringReader = new StringReader(xmlString);
InputSource inputSource = new InputSource(stringReader);
Document newDoc = db.parse(inputSource ) ;
TransformerFactory tfactory=TransformerFactory.newInstance();
Transformer transformer=tfactory.newTransformer();
DOMSource source=new DOMSource(newDoc);
StreamResult result=new StreamResult(new File(fileName));
// transformer.setOutputProperty("encoding","UTF-8");
transformer.transform(source,result);
}catch (Exception e) {
log(e);
}
}
8 xml转换为json格式的数据
/**
* @Description:xml转换为json格式的数据
* Author:
* Date: 2016/3/27
* Time: 19:53
* Version: 0.1
* @param path
* @return
*/
public static String toJson(String path) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// step 2:获得具体的dom解析器
DocumentBuilder db = null;
Document document = null;
try {
db = dbf.newDocumentBuilder();
document = db.parse(new File(path));
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// step3: 解析一个xml文档,获得Document对象(根结点)
NodeList list = document.getElementsByTagName("Graphics");
Element rootElement = (Element)list.item(0);
NodeList nodeList = rootElement.getElementsByTagName("Graphic");
StringBuilder json = new StringBuilder("{\"Graphic\":[");//
if(nodeList != null){
for (int i = 0 ; i < nodeList.getLength(); i++){
Element element = (Element)nodeList.item(i);
String content = element.getElementsByTagName("Content").item(0).getFirstChild().getNodeValue();
if(i==0){
json.append(content);
}else{
json.append(","+content);
}
}
}
json.append("]}");
return json.toString();
}
9 日期加减
/**
* 日期加减
* @param date 传入的日期
* @param days 加减的天数
* @return 新的日期
*/
public static Date getNewDay(Date date,int days){
Date retDate = new Date();
try {
retDate = new Date(date.getTime() + ((-days) * 24 * 60 * 60 * 1000));
} catch (Exception e) {
CommonUtil.log(e);
}
return retDate;
}