2012-04-05 9 views
1

を使用してJSONから[]バイトを解析 -アンドロイド - 誰もがJSONファイルから[]バイトを解析して手伝ってくれるジャクソン/ gson

JSONファイルは次のようになります。

{ 
    name:"test" 
    myImage:[67,78,....] 
    } 

私はしないでくださいこのファイルは複数のイメージを持ち、システムのメモリが不足しているため、新しいJSONObject()を作成して解析したいとします。

私はGSON/Jackson/JSONReader(android> 3.1)を使いたいですが、ほとんどの場合getInt()、getString()オブジェクトがあるようです。

byte []自体を後でdrawableに変換できるオブジェクトにどのように解析できますか?

本当に助けていただきありがとうございます。

+0

ところで、アンドロイド3.0の下で、あなたが使用することができますGSON https://code.google .com/p/google-gson/ –

答えて

0

何を試しましたか?ジャクソンでは、POJOを次のように使用できます。

class Stuff { 
    public String name; 
    public byte[] myImage; 
} 

Stuff stuff = new ObjectMapper().readValue(new File("stuff.json"), Stuff.class); 

これはうまくいくはずです。

しかし、このJSONシリアライゼーションは一般的な方法ではありません。バイト配列をbase64エンコードデータとして含めることが一般的です。これは、ObjectMapper.writeValue(...)を使用する場合、Jacksonがそれをシリアル化する方法です。その理由は、base64エンコーディングがよりコンパクトで、数値配列より少ないメモリを使用するからです。

+0

この方法でGSONを使用して解決しました。 – user510164

0

が、私はそれをこのように解決し

InputStream instream = entity.getContent(); 
      Gson gson = new Gson(); 
      Reader reader = new InputStreamReader(instream); 
      JsonReader jsonReader = new JsonReader(jsonReader); 
       jsonReader.beginArray(); 
       while (jsonReader.hasNext()) { 
        MyCustomObject cobj = gson.fromJson(jReader, 
          MyCustomObject.class); 
        byte[] image = cobj.Image; 
        } 
0

JSONObject->getString().getBytes();

GSON/JsonReader->getString().getBytes();

関連する問題