Your problem is that instead of the real image bytes you have the hashcode of the byte array in the json data: "[B@25450aa2" To solve the problem when you serialize the object you need to use
new String(Base64.encodeBase64(byteArray))
and when you parse the json data you need to do the opposite:
Base64.decodeBase64(jsonString.getBytes())