首页 > 解决方案 > 将 Base64 字符串转换为字符串数组

问题描述

我正在使用 request.getParameter 并获取此值:

[
  "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAA0NDQ0ODQ4QEA4UFhMWFB4bGRkbHi0gIiAiIC1EKjIqKjIqRDxJOzc7STxsVUtLVWx9aWNpfZeHh5e+tb75+f8BDQ0NDQ4NDhAQDhQWExYUHhsZGRseLSAiICIgLUQqMioqMipEPEk7NztJPGxVS0tVbH1pY2l9l4eHl761vvn5///AABEIBJgHKAMBIgACEQEDEQH/xACAAAEBAAMBAQEAAAAAAAAAAAAAAQIDBQQGBxABAAICAQIGAgEEAwEAAwEBAAECAxEEEiEFExQxQVEVIjIjUmFxM0KBJDRigkNEAQEBAQEBAAAAAAAAAAAAAAAAAQIDBBEBAAIDAQACAwEBAQAAAAAAAAERAhITUQMhMUFhIjJC/9oADAMBAAIRAxEAPwDYxmWFrREPPbKwN1sjyXvNlm20RWrpj6WKx9NuliBSGaRDKATohl0x9KygE0MgGHTHyTWPpmmgSKx9M4WAGMxuEisNiAw6I+liumSTIBpNwnUDLpj6NMYsz3sFiGWkhQYTWGUVDcAaRdgGjULokGOmUGlBU1CgjHREMlATpUUYdMfSxCqBCLtAYzVOiIZMtAwZmlBhrZ0wy0AnTB2hlBMA1ztrmky9GgV5a8eN7lviIrHaGbXedR2Bj1E7lrx1tM7l6dAx6YNM9GgTSqCJqDUKKJpQBF0KDHR2hkxmAVJhQGOliqgIq6AY6NQyUGOhUBTSKBoUBDQoJpNM0BDTJAY6TTKCYBgy0ul0DDRpnpdAw0rLRoGBpnpNAxVdEQCiroGEwsQugAlQGOl0ugEVRARkAxUZAhpVUTQqghpQE0aUTvs3ICJG2cADLsTMAIwtLGIsA0yiJXQAsQAIEAC7UAXTZWsQAjZoBUAAf/2Q==",
  "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAA0NDQ0ODQ4QEA4UFhMWFB4bGRkbHi0gIiAiIC1EKjIqKjIqRDxJOzc7STxsVUtLVWx9aWNpfZeHh5e+tb75+f8BDQ0NDQ4NDhAQDhQWExYUHhsZGRseLSAiICIgLUQqMioqMipEPEk7NztJPGxVS0tVbH1pY2l9l4eHl761vvn5///AABEIBTQIWAMBIgACEQEDEQH/xACFAAEBAAMBAQEAAAAAAAAAAAAAAQIEBQMGBxABAAICAQMDAwMEAgIDAQADAAECAxEEBRIhEzFRFCJBFTJSI0JhcTNTJENygZFiJTShAQEBAQEBAAAAAAAAAAAAAAAAAQIDBBEBAQACAgIDAQEBAQEBAAAAAAECERITIVEDMUFhIjIjgVL/2gAMAwEAAhEDEQA/ANoE2yKbY7QGUyIbBWM31+WFrPGbbQes5YhhOTby0yiAXcykKaFDamtgppPMLACKRAGliFAQUBBkAw0x7XokgkQukiWQEQoAmiIUgGSaUBGSKKAoIKRAAGgUFBIjTIAVJUBF0KDGUhmAKABCgCgApEAAugQU0oMdCroE0mmWgGOjTNNAkKABpQECQEVPO1BBTQMVhQAABJZAMdGlUGOjTIBiqgIMkFY6TTMBjo0yAY6XSgJoUBBUkE15VYgBEirJRGOhkAxVSQYqKAACLBCgKADGWQCKAAKCKIAAAACCgAQoIKAgqAIqgmlEBQgAFARRQEBQAAABFF0DFQAVFBBRBBQEFFEUAAAE0oAAgAAigAAAKAgoDDbMAAAQXSAKAACgooICgIqAAACoAAAaUANAAAAAAAAigMZ2RKmgURQAAUABFQFAAAAAAABAUEFQBjMvLJaYidQ5mbPyv7KSuh19sbX1D5+2fqH8HjOXqF/7TVH0dcm3p3Q+exz1HX7Wzjx8+0+TVHZ2yamPHn/us24g0KKAhJLU5Fcto1STSNjug7nBy4edvxNnj6nMp+JB9J3bY98fL5q/J5cxqImGOSOZXWrzPgH0/ey7ny2GedN/O5h3cFM3ibmhvwEKgmmMs01CKAACiGwQUAAiQBQAAAQAFABFABQBEgAVABYUAABFAUAAAAAACAAAAkAAAAABAAAAYV/dIA9AAAAVAAAAAAQBVQAAEESQFIAB/9k="
]

如何将其转换为数组?

当我使用时,request.getParameterValues("jsondata");我得到了这个值 [Ljava.lang.String;@8892fd8,这是意料之外的。

标签: javajqueryajaxservlets

解决方案


jsondata值为 JSON 文本。它以 开头[,这意味着它是一个 JSON 数组。

要处理它,您应该使用 JSON 解析器。请参阅如何在 Java 中解析 JSON

一旦你解析了它,你应该有 aString[]或 a List<String>,有 2 个值。

这两个值都data:image/jpeg;base64,以 Base-64 编码的二进制数据(JPEG 图像)开头。

假设您有 Java 8 或更高版本,请使用Base64该类解码为byte[].

您现在拥有 2 个 JPEG 图像,采用 2 字节数组的形式。


推荐阅读