`

blob,base64互转;私有方法的测试;GSon的坑

 
阅读更多
总结一下目前手头的项目~发现不少知识点的盲区,如下。做个小笔记方便以后复用。
 
blob,base64互转
最开始编码解码用的是原生base64,encode因为直接从数据库拿到的blob传进入,不允许强转,遂用流重写之;
而decode存入数据库图片打开有问题,就也换了。查了好久没查到导致的原因,总之它可以工作了。
return Base64.decodeBase64(base64Str);
return Base64.encodeBase64String(bytes);
/**
 * blob转base64
 * @param blob
 * @return
 */
public static String convertBlobToBase64String(Blob blob) {
    String result = "";
    if(null != blob) {
        try {
            InputStream msgContent = blob.getBinaryStream();
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            byte[] buffer = new byte[100];
            int n = 0;
            while (-1 != (n = msgContent.read(buffer))) {
                output.write(buffer, 0, n);
            }
            result =new BASE64Encoder().encode(output.toByteArray()) ;
            output.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;

    }else {
        return null;
    }
}

/**
 * base64转blob
 * @param str
 * @return
 */
public static byte[] transformBase64(String str) {
    BASE64Decoder decode = new BASE64Decoder();
    byte[] b = null;
    try {
        b = decode.decodeBuffer(str);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return b;
}
 私有方法的测试
@Test
public void test_方法名(){
    try{
//创建类
        ServiceClass service = new ServiceClass();
//指定方法
        Method method = ServiceClass.class.getDeclaredMethod("方法名", 参数类型.class);
//允许反射调用私有方法
        method.setAccessible(true);
        //执行
        System.out.println(method.invoke(service, 参数···));
    }catch(Exception ex){
        ex.printStackTrace();
    }
}
GSon的坑
用GSon处理json数据发现这个工具有些比较坑的地方。
比如转换“201609121830”这样的时间字段,会变成科学计数法,很崩溃。只有用new BigDecimal((Double) paramMap.get("DATE")).toString()这样的方法,让它正常显示。
 
再比如,转换时遇上空字段直接抛错,可以重写原生的一些方法来避免,但不知道为什么调试的时候总是进不去这个方法,网上的教材也是大同小异的,调用方法也很简单,看不出什么错误。遂崩溃,换了Jackson~
/**
 * JSON转HashMap
 * @param jsonStr
 * @return
 * @throws Exception
 */
public static Map<String, Map<String, Object>> JSON2HashMap(String jsonStr) throws Exception{
    ObjectMapper objectMapper = new ObjectMapper();
    Map<String, Map<String, Object>> maps = objectMapper.readValue(jsonStr, Map.class转换的格式);
    return maps;
}
 
 
map转json也很简单
ObjectMapper mapper = new ObjectMapper();  
String json = mapper.writeValueAsString(map);  
分享到:
评论

相关推荐

    PB PowerBuilder base64 blob 互转

    这个主题"PB PowerBuilder base64 blob 互转"涉及到的是如何在PowerBuilder应用程序中处理base64编码和BLOB(Binary Large Object)数据类型之间的转换。这两种数据类型在不同的场景下都有其独特的作用,而将它们...

    前端开发之JS实现图片blob与base64互转实用工具函数

    具体来说,blob转base64利用了FileReader的readAsDataURL异步读取接口并返回Promise形式确保代码简洁性和健壮性;base64回溯到blob时则通过window.atob解码和Uint8Array创建原始字节序列,最后打包成blob对象。并且给...

    Oracle bolb转换Base64 CLOB.txt

    Oracle slq bolb转换Base64 CLOB

    图片与Base64互转

    总的来说,理解图片与Base64编码的互转对于IT从业者来说是相当重要的,它在数据传输、存储和显示方面都发挥着关键作用。而`GetBase64.exe`这样的工具则简化了这一过程,使得非编程人员也能轻松进行操作。

    Base64和图片互转

    Base64是一种基于64个可打印字符来表示二进制数据的编码方式,它将任意二进制数据转换成可打印的ASCII字符串。在Web开发中,Base64编码常用于在HTTP协议中传输非ASCII字符,如图片、音频或视频等文件,因为HTTP协议...

    c#中 base64字符串与普通字符串互转

    总结,C#中的Base64字符串与普通字符串互转是通过`System.Convert`类提供的`ToBase64String`和`FromBase64String`方法实现的。在进行转换时,需要确保对字符串的编码有准确的理解,以便正确地转换和还原。在实际应用...

    JQ JS javascript 普通图片上传 图片格式转换 图片base64转换 jpg转base64 png转base64

    // 将blob对象转换为base64,与上面相同的方法 }, 'image/png'); } else if (newFormat === 'jpg') { canvas.toBlob(function(blob) { // 将blob对象转换为base64,与上面相同的方法 }, 'image/jpeg'); } }; ...

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片)

    总的来说,这个示例提供了一种有效的方法来处理数据库中的图片存储,通过BASE64编码简化了数据的传输和存储,同时在数据库层面利用Blob类型保持了图片数据的完整性。不过,对于大量图片或需要安全保护的图片,更推荐...

    前端将base64转换成文件显示

    function showFile(sBaseFile){ if (!sBaseFile) { ///文件不存在! } const blob = base64ToBlob(sBaseFile); if (window.navigator && window.navigator....base64ToBlob 方法在txt中,这里放不下了

    pb9 BOLB转base64位

    pb9 BOLB转base64位

    PDF格式文件转成base64编码,将base64的编码转成PDF格式文件。

    BASE64Encoder和BASE64Decoder这两个方法是sun公司的内部方法,并没有在java,api中公开过,所以使用这些方法是不安全的,将来随时可能会从中去除,所以相应的应该使用替代的对象及方法,建议使用apache公司的API。

    image-tools图像转换工具,可用于图像和base64的转换

    这些函数可能包括`base64ToBlob`,用于将base64编码转换为Blob,以及可能的`blobToBase64`,用于将Blob对象转换回base64编码。同时,这个库可能还提供了其他图像处理功能,如缩放、裁剪、旋转等。 【package.json】...

    python将图片转base64,实现前端显示

    此外,要考虑到不同浏览器对Base64编码的图片支持可能有所不同,虽然现代浏览器对此支持良好,但在进行跨浏览器兼容性测试时仍需小心。 综上所述,Python在将图片转换为Base64编码并实现前端显示方面有着简单直接的...

    图片与Base64加密码字符串相互转换工具

    【标题解析】 "图片与Base64加密码字符串相互转换工具" 是一款软件应用,它的主要功能是处理图像文件并进行编码与解码。...6. 源码学习:用户可以借此了解图片编码、Base64编码、加密算法在实际应用中的实现方法。

    BLOB与String互转

    最近开发遇到blob类型转换为String,一时犯难。所以总结了一段代码与之分享。亲测

    小程序预览base64 码的pdf

    这可以通过小程序的`wx.base64ToArrayBuffer`方法完成,将Base64编码的PDF转换为ArrayBuffer对象,这是小程序能理解的数据格式。 3. **利用HTML5的Blob对象**:将ArrayBuffer转换为Blob对象,因为小程序没有直接...

    图片流转存Base64编码然后转图片 Spring 框下的

    本篇将详细讲解如何在Spring框架下,将图片流转存为Base64编码,并从Base64编码还原回图片。 首先,我们需要理解什么是图片流和Base64编码。图片流是指图片数据的一种序列化形式,它可以是字节流或字符流,通常用于...

    JS 前端开发:图片base64与file-blob互转实现及应用

    内容概要:本文档详细介绍了如何在 JavaScript 中进行图片base64编码和file/blob对象之间的相互转换,针对两种不同转换方向提供了具体的代码实现。包括base64-&gt;Uint8Array-&gt;new File/Blob的过程,通过拆解base64字符...

    pb-base64.zip

    pb10调用base64.dll,实现将图片转换成base64编码,将base64编码转换成图片 函数声明 function long GetFileEncode64(ref string filename, ref string encode64)library "base64" alias for "GetFileEncode64;...

    base64编码解码用于pb8pb9pb12.5等

    public function blob base64decode (string strbuf, ref character lc_return[]) //2013.11.26 //修改了原网上的最后2位字符的bug //修改了原网上解码没有按照标准76字符增加换行符的bug /* 标注base64编码方式 ...

Global site tag (gtag.js) - Google Analytics