欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

公用方法的一些转换

程序员文章站 2024-03-17 15:52:22
...

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;
	}