2017-07-16 28 views
0

イメージデータをバッファ(バイト)形式で取得していますが、これをbase64文字列に変換します。JSONArrayのバイトをバイト配列にコピーする方法

JSONArray bytearray_json = record.getJSONObject("image").getJSONArray("data"); 
byte[] bytes = new byte[bytearray_json.length()]; 
for (int i =0; i < bytearray_json.length(); i++) { 
    bytes[i] = (byte)bytearray_json.get(i); 
} 
String base_64 = Base64.encodeToString(bytes,Base64.DEFAULT); 

しかし、私は例外を取得:Cannot cast Integer to byte 私は以来bytearray_json.get(i).toString().getBytes();を行うことはできませんが、データはそのためにとても

JSONArray : `[53,57,51,47,53,57,51,55,50,98,98,54,53,51,54,97,102,101,53,101,102,54,57,54,53,54,53,51,102,98,53,99,98,98,99,51,98,48,52,57,56,52,52,101,54,48,50,99,56,55,101,54,53,97,51,102,56,49,56,57,56,98,102,56,49,57,97,57]` 

のように私はそうのように、"byte" arrayにJSONArrayをコピーしています、JSONArray内部に収容されますByte Arrayを返します。

どうすればこの問題を解決できますか?

+0

が ''バイト[i]を=(バイト)(int型)bytearray_json.get(i)を試してみてください、これを試してみることができます。 – saka1029

答えて

0

あなたは

JSONArray jsonArray = response.getJSONObject("image").getJSONArray("data"); 
byte[] bytes = new byte[jsonArray.length()]; 
for (int i = 0; i < jsonArray.length(); i++) { 
     bytes[i]=(byte)(((int)jsonArray.get(i)) & 0xFF); 
} 
Base64.encodeToString(bytes, Base64.DEFAULT); 
関連する問題