1

任何人都可以帮助我从 json 文件中解析一个字节 [] -

JSON 文件如下所示:

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

我不想创建一个新的 JSONObject() 并解析,因为这个文件可以有多个图像并且系统内存不足。

我想使用 GSON/Jackson/JSONReader(android>3.1),但它似乎主要有 getInt()、getString() 对象。

我如何将 byte[] 本身解析为一个对象,然后我可以将其转换为可绘制对象。

我真的很感激任何帮助。

4

3 回答 3

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 编码会更紧凑,比数字数组使用更少的内存。

于 2012-04-05T14:07:32.357 回答
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;
                    }
于 2012-04-07T18:18:04.307 回答
0

JSON对象->getString().getBytes();

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

于 2014-02-13T22:11:00.277 回答