1 手动实现字符串的反序列化实际上使用的是 com.google.gson.stream.JsonReader 类
- @Test
- public void test() throws IOException {
- String jsonStr = "{\"account\":\"admin\",\"password\":\"123456\",\"name\":\"John\",\"age\":30}";
- User user = new User();
- JsonReader reader = new JsonReader(new StringReader(jsonStr));
- reader.beginObject();
- while (reader.hasNext()) {
- String name = reader.nextName();
- switch (name) {
- case "account":
- user.setAccount(reader.nextString());
- break;
- case "password":
- user.setPassword(reader.nextString());
- break;
- case "name":
- user.setName(reader.nextString());
- break;
- case "age":
- user.setAge(reader.nextInt());
- break;
- default:
- break;
- }
- }
- reader.endObject();
- System.out.println(user);
- reader.close();
- }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
运行结果:
2 手动实现字符串的序列化实际上使用的是 com.google.gson.stream.JsonWriter 类
- @Test
- public void test() throws IOException {
- JsonWriter writer = new JsonWriter(new OutputStreamWriter(System.out));
- writer.beginObject()
- .name("account").value("admin")
- .name("password").value("123456")
- .name("name").value("John")
- .name("age").value(30)
- .endObject();
- writer.flush();
- writer.close();
- }
运行结果:
本文暂时没有评论,来添加一个吧(●'◡'●)