Put/get byte-array-Wert mit JSONObject
Habe ich versucht, meine byte[]
Wert von JSONObject
mit dem folgenden code, aber ich bin nicht immer original byte[]
Wert.
JSONArray jSONArray = jSONObject.getJSONArray(JSONConstant.BYTE_ARRAY_LIST);
int len = jSONArray.length();
for (int i = 0; i < len; i++) {
byte[] b = jSONArray.get(i).toString().getBytes();
//Following line creates pdf file of this byte arry "b"
FileCreator.createPDF(b, "test PDF From Web Resource.pdf");
}
}
Obige code erstellt pdf-Datei, aber die Datei nicht öffnen kann, ich.e beschädigte Datei. Wenn ich mit der gleichen Klasse und eine Methode zu erstellen-Datei:
FileCreator.createPDF(b, "test PDF From Web Resource.pdf");
wird vor der Zugabe in JSONObject
wie folgende:
JSONObject jSONObject = new JSONObject();
jSONObject.put(JSONConstant.BYTE_ARRAY_LIST, bList);
es schafft, die Datei habe ich.e kann ich das öffnen von pdf-Datei und Lesen Sie dessen Inhalt.
Was ich falsch gemacht habe um byte[]
aus JSONObject
so, dass es eine beschädigte Datei? Bitte guide mich. Und ich freue mich immer auf Kommentare. Danke.
Hat Ihr jsonarray enthalten mehrere PDF-Dokumente, gespeichert als byte[]?
Ja, es können mehrere PDF-Dokumente. Aber jetzt Test ich bin nur eine zusätzliche PDF-Dokument.
Ja, es können mehrere PDF-Dokumente. Aber jetzt Test ich bin nur eine zusätzliche PDF-Dokument.
InformationsquelleAutor Yubaraj | 2014-10-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schließlich habe ich mein Problem gelöst mit Hilfe von apache commons Bibliothek. Ersten habe ich folgende dependency.
Die Technik, die ich vorher falsch war für mich (Nicht sicher für die anderen). Folgendes ist die Lösung, wie ich mein problem gelöst.
Lösung:
Ich Hinzugefügt byte-array-Wert, der vorher auf JSONObject gespeichert und als String. Wenn ich versuchte, aus JSONObject, um mein byte-array zurückgegebene String nicht meine ursprüngliche byte-array. Und nicht den original-byte-array selbst ich benutze folgende:
Nun,
Ersten I kodiert mein byte-array in string und hielt auf dem JSONObject zu, die codierte Zeichenfolge. Siehe unten:
Und der code, dass ich wieder zu meiner ursprünglichen byte-array:
Das ist es.
Sie sind herzlich willkommen.
InformationsquelleAutor Yubaraj
Für tests Beispiel(com.fasterxml.jackson verwendet):
InformationsquelleAutor CamelTM
Könnte dies eine Hilfe sein für diejenigen, die sich mit Java 8. Nutzen
java.util.Base64
.Encoding byte-array zu String :
Decode byte-array aus Strings :
InformationsquelleAutor shark1608
Beim einfügen eines byte-array in ein JSONObject die toString () - Methode aufgerufen.
Beispiel-Ausgabe:
so dass Sie haben, um es zu speichern in einer Weise, dass Sie analysiert die Zeichenfolge in den ursprünglichen Datentyp.
InformationsquelleAutor user