写一个将一个String类型的json经过base64加密后解密转化成javaBean的工具类

来源:互联网 发布:广联达造价软件培训 编辑:程序博客网 时间:2024/06/14 15:31

      这个是由于自身需要,所写的一个工具类。代码不多,几十行主代码。主要用到3个jar包。

     功能:可以将String类型的JSON格式的字符串(经过base64加密过得)解密后,添加到javaBean里面去。

      用法:主需要调用静态方法,传入字符串,和javaBean.返回值是javaBean.

   1.jar包

        (1)一个JSON包。

        (2)base64包

         (3)BeanUtil工具包

  

   2.代码

    (1)这个是utilbase64类。用途是,把接受到的字节进行解码,返回String字符串。

package Util;import org.apache.commons.codec.binary.Base64;import org.junit.Test;public class UtilBase64 {static String str=null;public static  String decodeBase64(final byte[] bytes){if(bytes!=null){str=new String(Base64.decodeBase64(bytes));return str;}else{return null;}}}

        (2)这个是UtilJsonToJava. 工具核心类

 

package Util;import java.lang.reflect.InvocationTargetException;import java.util.HashMap;import java.util.Iterator;import net.sf.json.JSONObject;import org.apache.commons.beanutils.BeanUtils;/** *  * 接受Base64编码 javaBean对象,返回JAVA对象 * @author  * */public class UtilJsonToJava { public static <T>T UtilJsonToJava(String bytes,T javaBean) throws IllegalAccessException, InvocationTargetException{//建立BeanUtils 对象BeanUtils bean=new BeanUtils();//把String类型的bytes转换成byte[]byte[] Bytes=bytes.getBytes();//得到String类型的json格式String json=UtilBase64.decodeBase64(Bytes);//把String类型的json转换成JSONObjectJSONObject jsonObject =new JSONObject().fromObject(json);//遍历JSONObject 添加到javaBean中去Iterator it=jsonObject.keys();while(it.hasNext()){String key=(String)it.next();String value=(String)jsonObject.get(key);bean.copyProperty(javaBean, key, value);}return javaBean;}}


3.写一个测试类。测试一下效果


    (1)先写一个JavaBean

      

package Test;public class javaBean {  private String id;  private String name;public javaBean() {super();// TODO Auto-generated constructor stub}public javaBean(String id, String name) {super();this.id = id;this.name = name;}@Overridepublic String toString() {return "javaBean [id=" + id + ", name=" + name + "]";}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}


   (2)再写一个模拟传入字符串

  

//测试UtilJsonToJava@Testpublic void testUtilToJava() {//模拟一个加了密的json字符串String stt="{\"id\":\"3\",\"name\":\"博客\"}";//加密String st=Base64.encodeBase64String(stt.getBytes());System.out.println(st);try {System.out.println(UtilJsonToJava.UtilJsonToJava(st, new javaBean()).toString());} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InvocationTargetException e) {// TODO Auto-generated catch blocke.printStackTrace();}}


4.得到的结果是

//这个是:加密的编码

eyJpZCI6IjMiLCJuYW1lIjoisqm/zSJ9

//这个是一个javaBean类

javaBean [id=3, name=博客]

   欢迎留言,多给点鼓励。谢谢


  

0 0