java - JSON 反序列化时的 Base64 解码值

标签 java json base64 deserialization

我正在使用 Java 开发一个应用程序,该应用程序从 API 读取 JSON,该 API 返回以 Base64 编码的值。这是 JSON 的一部分(实际上有很多键/值):

{
    "id_element": "MjUxMTEz",
    "title": "VGVzdCB0aXRsZQ==",
    "description": "SSBrbmV3IHlvdSB3ZXJlIHZlcnkgY3VyaW91cyAhIEhhaGEgOkQ=",
    "picture": "aHR0cDovL3RoZWFydG1hZC5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDIvQ3VyaW91cy1HZW9yZ2UtV2FsbHBhcGVyLTcuanBn",
    "link": "",
    "id_categorie": "MTB5Nzc=",
    "active": "MQ==",
    "date_create": "MDAwMC0wMC0wMCAwMDowMDowMA=="
}

是否有一个 Java 库支持反序列化过程中的 Base64 解码,还是我必须自己执行此操作?我想要一个 Java 对象,其中包含此 JSON 中的反序列化值。非常感谢!

最佳答案

您可以使用 apache commons 编解码器 http://commons.apache.org/proper/commons-codec/ 并调用以下方法: byte[] org.apache.commons.codec.binary.Base64.decodeBase64(String base64String)

如:

 /**
 * Decode string to image
 * @param encodedString The string to decode
 * @return decoded image
 */
public static BufferedImage decodeToImage(String encodedString) {

    BufferedImage image = null;
    byte[] imageByte;
    try {
        imageByte = Base64.decodeBase64(encodedString);
        ByteArrayInputStream bis = new ByteArrayInputStream(imageByte);
        image = ImageIO.read(bis);
        bis.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return image;
}

关于java - JSON 反序列化时的 Base64 解码值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29891318/

相关文章:

java - 为什么在类初始化之前执行的断言语句的行为就像在类中启用了断言一样?

java - 如何使用 Inline::Java 连接到外部 JVM?

java - 从 Hibernate 反序列化 JSON

javascript - 将 MediaRecorder 音频转换为 base64

android - Android中base64字符串编码和解码位图对象

c# - Java编码base64,C#解码

java - 如何将对象属性名称与字符串进行比较?

java - java 钻石星号的高度

json - 使用动态键和 json 值构建 JSON 对象

java - 获取 json 对象并使用 JSONObject 类或其他方式将其解析为 java 内部的字符串?