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");
            }
        }
原文地址:https://www.cnblogs.com/zhukunqiang/p/7511214.html