• Gson(Google)基础


    一、所需jar包:

      gson-x.x.jar(本例使用的是gson-2.7.jar)。

    二、解析转化:

      1、json字符串  < ------ >  json

            String str="{"name" : "peter","age" : 25,"address" : "广州","weight" : "55.5","handsome" : true}";
            Gson gson=new Gson();
            
            //json字符串  ------>  json
            JsonObject jsonObject=new JsonParser().parse(str).getAsJsonObject();
            
            //json  ------>  json字符串
            String json=jsonObject.toString();

      

      2、java实体类  < ------ >  json

    public class User {
        private String name;
        private int age;
        private String address;
        private double weight;
        private boolean handsome;
        //此处省略构造方法和get/set方法
            User user=new User("peter", 20, "广州", 55.5, true);
            
            /*
             * java实体类   ------>  json
             */
            //java实体类   ------> json字符串
            String jsonStr=new Gson().toJson(user);
            //json字符串  ------>  json
            JsonObject jsonObject=new JsonParser().parse(jsonStr).getAsJsonObject();
            
            //json  ------>  java实体类
            User user2=new Gson().fromJson(jsonObject, User.class);

      3、List  < ------ >  json

            List<String> list=new ArrayList<String>();
            list.add("QQQQQQ");
            list.add("WWWWWW");
            list.add("EEEEEE");
            list.add("RRRRRR");
            
            Gson gson=new Gson();
            //List------>json字符串------>jsonAray
            String arrStr=gson.toJson(list);
            JsonArray jsonArray=new JsonParser().parse(arrStr).getAsJsonArray();
            
            //jsonAray------>List
            List<String> list2=gson.fromJson(jsonArray, List.class);

      4、Map  < ------ >  json

            Map<String, String> map=new HashMap<String, String>();
            map.put("name", "peter");
            map.put("sex", "Man");
            map.put("age", "20");
            
            Gson gson=new Gson();
            //Map------>json字符串------>json
            String gsonStr=gson.toJson(map);
            JsonObject jsonObject=new JsonParser().parse(gsonStr).getAsJsonObject();
            
            //json------->Map
            Map<String, String> map2=gson.fromJson(jsonObject, Map.class);

      5、Set  < ------ >  json

            Set<String> set=new HashSet<String>();
            set.add("QQQQQQ");
            set.add("wwwwww");
            set.add("eeeeee");
            
            Gson gson=new Gson();
            
            //Set------>json字符串------>json
            String gsonStr=gson.toJson(set);
            JsonArray jsonArray=new JsonParser().parse(gsonStr).getAsJsonArray();
            
            //json----->Set
            Set<String> set2=gson.fromJson(jsonArray, Set.class);

      心得:Gson(Google)是将json字符串作为“桥梁”进行转化的。

    三、CRUD:

      1、查询数据:

            //"peter"
            String name1=jsonObject.get("name").toString();
            //peter
            String name2=jsonObject.get("name").getAsString();
         
            int age=jsonObject.get("age").getAsInt();
            for (int i = 0; i < jsonArray.size(); i++) {
                System.out.println(jsonArray.get(i));
            }

      2、增加数据

            jsonObject.addProperty("height", 170);
            jsonArray.add("RRRRRR");

      3、删除数据:

            jsonObject.remove("height");
            //index从0开始
            jsonArray.remove(index);

      4、修改数据:

            //重置数据即可
            jsonObject.addProperty("height", 180);
            for (int i = 0; i < jsonArray.size(); i++) {
                if("EEEEEE".equals(jsonArray.get(i).getAsString())){
                    jsonArray.remove(i);
                    jsonArray.add("eeeeee");
                }
            }
  • 相关阅读:
    POJ 2594 Treasure Exploration(最大路径覆盖)
    POJ 2516 Minimum Cost(最小费用最大流)
    城市面积
    python strip()函数
    python sys.path.append
    python调用shell,python与shell间变量交互
    远程登陆强大命令screen
    pythonLevenshtein几个计算字串相似度的函数解析
    python 程序bug解决方案
    python 全局变量
  • 原文地址:https://www.cnblogs.com/zhukunqiang/p/7511214.html
Copyright © 2020-2023  润新知