(fastjson )json和byte[], 互转问题!

fastjson 将 byte[]数组 转 json 的时候,会把byte[]转成base64字符串,所以在JSON转byte[]的时候需要使用base64解密!

几种可用的加解密处理

      
        byte[] byte1 = new byte[] {1,2};

// 这种情况转换之后的byte数组 是一段base64字符串,而不是 [1,2]
        String jar = JSONArray.toJSONString(byte1 );

// 需要用以下的办法转换
        byte1 = com.alibaba.fastjson.JSONArray.parseObject(jar,byte[].class);        //转json byte
        byte1 = com.alibaba.fastjson.util.Base64.decodeFast(jar);
        byte1 = jar.getBytes(Charset.forName("ISO8859-1"));//错误
        byte1 = org.apache.commons.codec.binary.Base64.decodeBase64(jar);//正确
        byte1 =  java.util.Base64.getMimeDecoder().decode(jar);            //正确

//以下两个方法执行结果一致 得出结论 byte[] 会转换成 base64 字符串
        jar = org.apache.commons.codec.binary.Base64.encodeBase64String(secretKey);
        jar = JSONArray.toJSONString(byte1);

 

 

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
要在 Android 应用程序中使用 fastjson 库解析本地 JSON 文件为 Java Bean,可以按照以下步骤进行: 1. 引入 fastjson 库 在你的项目中添加 fastjson 库的依赖。可以通过 Gradle、Maven 或手动导入 JAR 包的方式进行添加。 2. 创建 Java Bean 创建一个 Java Bean,用于存储 JSON 文件中的数据。 ```java public class ExampleBean { private String name; private int age; private List<String> hobbies; // getter 和 setter 方法 } ``` 3. 解析 JSON 文件 使用 fastjson 库将本地 JSON 文件解析成 Java Bean。以下是一个简单的示例代码,假设你的 JSON 文件名为 "example.json": ```java try { InputStream is = getAssets().open("example.json"); // 打开文件输入流 int size = is.available(); // 获取文件大小 byte[] buffer = new byte[size]; // 创建一个缓冲区 is.read(buffer); // 将文件内容读入缓冲区 is.close(); // 关闭文件输入流 String json = new String(buffer, "UTF-8"); // 将缓冲区内的字节转换为字符串 ExampleBean bean = JSON.parseObject(json, ExampleBean.class); // 解析 JSON 字符串为 Java Bean // 使用解析出来的 Java Bean 进行相关操作 String name = bean.getName(); int age = bean.getAge(); List<String> hobbies = bean.getHobbies(); // ... } catch (IOException e) { e.printStackTrace(); } ``` 在上述代码中,我们首先打开文件输入流,然后将文件内容读入缓冲区,接着将缓冲区内的字节转换为字符串,最后使用 fastjson 库将 JSON 字符串解析成 Java Bean。需要注意的是,此处我们将文件内容读入缓冲区时使用了 UTF-8 编码,因此在创建 String 对象时也需要指定相应的编码方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值