關於gson庫的使用

不同程序間的通信載體,使用json是比較方便的一種格式,當然,這種格式的好處晚上隨便找找就能看到,如果說到壞處,那麼可能就是全都是字符串傳輸,效率沒那麼高,但是對於一般開發的程序,尤其是互聯網的程序而言,綽綽有餘。
gson庫,maven的倉庫中去【 下載 】。

gson庫創建模式一種是new gson,默認方式。另外還有一種個性化配置的方式gsonBuilder。

1.json字符串轉換爲常見類型:int double String boolean

  public static void testfromJson()
       {
              Gson gson = new Gson();
              int number1 = gson.fromJson("999", int.class);
              double number2 = gson.fromJson("99.99", double.class);
              boolean number3 = gson.fromJson("true", boolean.class);
              String str = gson.fromJson("helloworld", String.class);
              numberSpecial number  =  gson.fromJson("{\"i\":1,\"j\":2.2,\"Address\":\"test\",\"flag\":true}",  numberSpecial.class);
       }

2.POJO類轉換爲json

public static void testObjectToJson()
       {
              Gson gson = new Gson();

              numberSpecial number = new numberSpecial(1,2.2,"test",true);
              String result = gson.toJson(number);
              System.out.println(result);

              numberSpecial number2 = gson.fromJson(result, numberSpecial.class);
              System.out.println(number2.i+" "+number2.j+" "+number2.str+"  "+number.flag);
       }

3.json格式的字符串,轉換爲數組

 public static void testArrayFromJson()
       {
              Gson gson = new Gson();
              String jsonArray = "[\"USD\",\"CNY\",\"GBP\"]";
              String [] strings = gson.fromJson(jsonArray, String[].class);
              for(int i=0; i< strings.length; i++)
              {
                     System.out.println(strings[i]);
              }
       }

4.將list和map集合對象,轉換爲json格式的字符串。

 public static void toListJSON()
       {
               List<numberSpecial> list = new ArrayList<>();
               Map<String,numberSpecial> map = new HashMap<>();
               numberSpecial number = new numberSpecial(3,3.3,"List",true);
               list.add(number);
               map.put("test1", number);
               numberSpecial number2 = new numberSpecial(3,3.3,"List",true);
               number2.i=4;
               list.add(number2);
               map.put("test2", number2);

              Gson gson = new Gson();
               System.out.println("List  json" + gson.toJson(list));
            System.out.println("map json" + gson.toJson(map));
       }

5.將json格式的字符串,轉換爲list和map集合對象。

public static void fromListJSON()
       {
              String jsonStr =  "[{\"i\":3,\"j\":3.3,\"Address\":\"List\",\"flag\":true},{\"i\":4,\"j\":3.3,\"Address\":\"List\",\"flag\":true}]";
              Gson gson = new Gson();
              List<numberSpecial> list = gson.fromJson(jsonStr, new  TypeToken<ArrayList<numberSpecial>>(){}.getType());
              for(int i=0; i< list.size(); i++)
              {
                     numberSpecial number2 = list.get(i);
                     System.out.println(number2.i+" "+number2.j+" "+number2.str+"  "+number2.flag);
              }
       }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章