2012-04-05 2 views
1

Может кто-нибудь помочь мне с разбора байт [] из JSon файла -андроид - разбор байт [] из JSON с помощью Джексоном/gson

JSON файла выглядит следующим образом:

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

Я не хотите создать новый JSONObject() и выполнить синтаксический анализ, потому что в этом файле может быть несколько изображений и система исчерпала память.

Я хочу использовать GSON/Jackson/JSONReader (android> 3.1), но в основном он имеет объекты getInt(), getString().

Как я могу разобрать сам байт [] в объект, который позже могу преобразовать в drawable.

Я очень ценю любую помощь.

+0

Btw под Android 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(...). Причина в том, что кодировка 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();

Смежные вопросы