JSON解析 Gson的使用

本文介绍如何使用Gson库将Java中的数组、集合、Map及JavaBean对象转换为JSON格式,并反向操作将JSON字符串还原成Java对象。通过具体实例展示了不同数据结构之间的相互转换过程。

JSON解析 Gson的使用

  • 数组

    • 数组转化为Json

      int[] numbers = {1, 1, 2, 3, 5, 8, 13};
      Gson gson = new Gson();
      String numbersJson = gson.toJson(numbers);      
      
    • json转化为数组

      int[] fibonacci = gson.fromJson(numbersJson, int[].class);
      for (int i = 0; i < fibonacci.length; i++) {
       System.out.print(fibonacci[i] + " ");
      }
      
  • 集合

    • 集合转化为Json

      List<String> names = new ArrayList<String>();
      names.add("Alice");
      names.add("Bob");
      names.add("Carol");
      names.add("Mallory");
      Gson gson = new Gson();
      String jsonNames = gson.toJson(names);
      System.out.println("jsonNames = " + jsonNames);
      
    • json转化为集合

      Type type = new TypeToken<List<Student>>(){}.getType();
      List<Student> studentList = gson.fromJson(jsonStudents, type);
      
      for (Student student : studentList) {
          System.out.println("student.getName() = " + student.getName());
      }
      
  • Map

    • Map转化为Json

      Map<String, String> colours = new HashMap<String, String>();
      colours.put("BLACK", "#000000");
      colours.put("RED", "#FF0000");
      colours.put("GREEN", "#008000");
      colours.put("BLUE", "#0000FF");
      colours.put("YELLOW", "#FFFF00");
      colours.put("WHITE", "#FFFFFF");
      Gson gson = new Gson();
      String json = gson.toJson(colours);
      System.out.println("json = " + json);
      
    • Json转化为Map

      Type type = new TypeToken<Map<String, String>>(){}.getType();
      Map<String, String> map = gson.fromJson(json, type);
      for (String key : map.keySet()) {
          System.out.println("map.get = " + map.get(key));
      }
      
  • JavaBean

    • Bean类转化为Json

      Calendar dob = Calendar.getInstance();
      dob.set(2000, 1, 1, 0, 0, 0);
      Student student = new Student("Duke", "Menlo Park", dob.getTime());
      Gson gson = new Gson();
      String json = gson.toJson(student);
      
    • Json转化为Bean

      String json = "{\"name\":\"Duke\",\"address\":\"Menlo Park\",\"dateOfBirth\":\"Feb 1, 2000 12:00:00 AM\"}";
      Gson gson = new Gson();
      Student student = gson.fromJson(json, Student.class);
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值