1. 程式人生 > >Gson 流式序列化反序列化

Gson 流式序列化反序列化

String json = "{\"name\":\"怪盜kidou\",\"age\":\"24\"}";
User user = new User();
JsonReader reader = new JsonReader(new StringReader(json));
reader.beginObject(); // throws IOException
while (reader.hasNext()) {
    String s = reader.nextName();
    switch (s) {
        case "name":
            user.name = reader.nextString();
            break;
        case "age":
            user.age = reader.nextInt(); //自動轉換
            break;
        case "email":
            user.email = reader.nextString();
            break;
    }
}
reader.endObject(); // throws IOException
System.out.println(user.name);  // 怪盜kidou
System.out.println(user.age);   // 24
System.out.println(user.email); // [email protected]

其實自動方式最終都是通過JsonReader來實現的,如果第一個引數是String型別,那麼Gson會建立一個StringReader轉換成流操作。