我正在將遺留 API 遷移到微服務。舊版 API 將 java 物件編碼為 base64 字串。使用以下代碼:
public String serialize() throws Exception {
String mementoXml = null;
Document document = DocumentHelper.createDocument();
Element dictionary = document.addElement("Dictionary");
dictionary.add(this.addChildren());
StringWriter sw = new StringWriter();
OutputFormat format = OutputFormat.createPrettyPrint();
format.setIndent(" ");
format.setTrimText(false);
XMLWriter writer = new XMLWriter(sw, format);
try {
writer.write(document);
writer.flush();
}
catch (Exception var8) {
}
mementoXml = sw.toString().replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "");
return encodeString(mementoXml);
}
public Element addChildren(){
Element response DocumentHelper.createElement("response");
Element el1 = response.addElement("element");
el1.setText(this.javaObject.getValue());
return response;
}
編碼的方法是:
public String encodeString(String in) throws EncoderException {
CompressedBase64Impl impl = new CompressedBase64Impl();
String output = null;
output = impl.encodeBytes(in.getBytes());
return output;
}
Spring boot 中將物件編碼為 base64String 的現代化方式是什么?有沒有類似的東西JSONWriter?
uj5u.com熱心網友回復:
這將寫入 ObjectOutputStream,然后寫入 Base64 編碼轉換器,然后寫入位元組陣列,然后將其轉換為字串。
public class EncodeToBase64 {
public static void main(String[] args) throws Exception {
List<?> someObjectToSerialize = new ArrayList<>();
System.out.println( serializeToBase64( someObjectToSerialize ) );
}
private static String serializeToBase64( Object someObjectToSerialize ) throws IOException {
try( final ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream( Base64.getEncoder().wrap( baos ) ) ) {
objectOutputStream.writeObject( someObjectToSerialize );
return baos.toString();
}
}
}
uj5u.com熱心網友回復:
String encodedString = Base64.getEncoder().encodeToString(originalInput.getBytes());
這樣您就可以轉換為 base 64 編碼的字串。Base64 帶有java.util包。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/530902.html
