2012-04-05 10 views
1

Kann jemand mir helfen, mit einem byte [] aus einer JSON-Datei Parsen -Android - analysieren byte [] von json mit jackson/Gson

JSON-Datei sieht wie folgt aus:

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

ich nicht möchte ein neues JSONObject() erstellen und analysieren, da diese Datei mehrere Bilder enthalten kann und das System nicht genügend Arbeitsspeicher hat.

Ich möchte GSON/Jackson/JSONReader (Android> 3.1) verwenden, aber es scheint meistens getInt(), getString() Objekte zu haben.

Wie kann ich das Byte [] selbst in ein Objekt analysieren, das ich später in ein Zeichen konvertieren kann.

Ich schätze wirklich jede Hilfe.

+0

Btw, unter Android 3.0 können Sie verwenden Gson https://code.google .com/p/google-gson/ –

Antwort

0

Was haben Sie versucht? In Jackson könnten Sie ein POJO wie:

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

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

verwenden, die funktionieren sollten.

Aber diese JSON-Serialisierung ist nicht der typische Weg, es zu tun: Es ist üblicher, Bytearray als base64 kodierte Daten einzuschließen. So wird Jackson es serialisieren, wenn Sie ObjectMapper.writeValue(...) verwenden. Der Grund dafür ist, dass die base64-Codierung kompakter ist und weniger Speicher benötigt als Zahl-Arrays.

+0

Ich löste es mit GSON - auf diese Weise: – user510164

0

ich es auf diese Weise gelöst

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();