编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Google Gson 手动实现字符串的反序列化和序列化

wxchong 2024-06-13 03:22:39 开源技术 17 ℃ 0 评论

1 手动实现字符串的反序列化实际上使用的是 com.google.gson.stream.JsonReader


  1. @Test
  2. public void test() throws IOException {
  3. String jsonStr = "{\"account\":\"admin\",\"password\":\"123456\",\"name\":\"John\",\"age\":30}";
  4. User user = new User();
  5. JsonReader reader = new JsonReader(new StringReader(jsonStr));
  6. reader.beginObject();
  7. while (reader.hasNext()) {
  8. String name = reader.nextName();
  9. switch (name) {
  10. case "account":
  11. user.setAccount(reader.nextString());
  12. break;
  13. case "password":
  14. user.setPassword(reader.nextString());
  15. break;
  16. case "name":
  17. user.setName(reader.nextString());
  18. break;
  19. case "age":
  20. user.setAge(reader.nextInt());
  21. break;
  22. default:
  23. break;
  24. }
  25. }
  26. reader.endObject();
  27. System.out.println(user);
  28. reader.close();
  29. }
  • 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


  1. @Test
  2. public void test() throws IOException {
  3. JsonWriter writer = new JsonWriter(new OutputStreamWriter(System.out));
  4. writer.beginObject()
  5. .name("account").value("admin")
  6. .name("password").value("123456")
  7. .name("name").value("John")
  8. .name("age").value(30)
  9. .endObject();
  10. writer.flush();
  11. writer.close();
  12. }

运行结果:

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表