您的位置:首页 > 编程语言 > Java开发

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

2017-03-22 13:06 411 查看
      这个是由于自身需要,所写的一个工具类。代码不多,几十行主代码。主要用到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转换成JSONObject
JSONObject 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;
}
@Override
public 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
@Test
public 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 block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

4.得到的结果是

//这个是:加密的编码

eyJpZCI6IjMiLCJuYW1lIjoisqm/zSJ9

//这个是一个javaBean类

javaBean [id=3, name=博客]

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

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐