<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      gson解析json

      json介紹

      JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式。它基于 ECMAScript 規范的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。現在大部分APP都使用json給前端返回數據。

      gson包

      Gson 是 Google 提供的用來在 Java 對象和 JSON 數據之間進行映射的 Java 類庫。可以將一個 JSON 字符串轉成一個 Java 對象,或者反過來。

      幾種常見的json數據如何解析成java對象

      如果用的Android Sutdio開發,可以通過在線引用庫的方式。在project/app/build.gradle文件里面的dependencies下加入一句代碼:

      compile 'com.google.code.gson:gson:2.8.0'
      

      gradle會默認從Jcenter Maven倉庫獲取aar文件。

      解析對象

      我們現在有一個json字符串:"{'name':'Ansen', 'age':20}",有兩個屬性name跟age,我們可以寫一個實體類User來對應.重寫了toString方法。輸出對象的時候會輸出所有屬性。而不是一個hash值。

      public class User {
          private String name;//姓名
          private int age;//年齡
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public int getAge() {
              return age;
          }
      
          public void setAge(int age) {
              this.age = age;
          }
      
          @Override
          public String toString() {
              return "User{" +
                      "name='" + name + '\'' +
                      ", age=" + age +
                      '}';
          }
      }
      

      使用gson包把json字符串轉成User對象一句代碼就搞定,這里用的gson對象是MainActivity的實例變量。調用fromJson方法就能轉換了。

      String jsonStr="{'name':'Ansen', 'age':20}";
      User user=gson.fromJson(jsonStr, User.class);
      Log.i("MainActivity","parseObject user:"+user.toString());
      

      解析成數組

      上面我們提到了json字符串轉對象,在企業開發中,服務器給我們的是一個數組格式的json數據也很常見的。跟轉換對象基本一樣的。

      String jsonStr="[{'name':'Uini', 'age':30},{'name':'Lina', 'age':10}]";
      List<User> users=gson.fromJson(jsonStr,new TypeToken<List<User>>() {}.getType());
      for(int i=0;i<users.size();i++){
          Log.i("MainActivity","parseArrayList user:"+users.get(i));
      }
      

      解析成Map

      String jsonStr="{'1': {'name':'haha', 'age':11},'2': {'name':'nihao', 'age':22}}";
      Map<String, User> users = gson.fromJson(jsonStr, new TypeToken<Map<String,User>>() {}.getType());
      for(String key:users.keySet()){
          Log.i("MainActivity","parseArrayList key:"+key+" user:"+users.get(key));
      }
      

      對象解析成json字符串

      我們知道把json字符串轉成object,那如果想把對象轉成json字符串呢?其實也很簡單,gson包都給我們封裝好了。我們new一個User對象,然后調用gson類的toJson方法就能把user對象轉成json字符串。

      User user=new User();
      user.setAge(111);
      user.setName("nime");
      String jsonStr=gson.toJson(user);
      Log.i("MainActivity","jsonStr:"+jsonStr);
      

      運行以上代碼,打印的log如下:

      05-12 17:18:48.991 14135-14135/com.ansen.gson I/MainActivity: parseObject user:User{name='Ansen', age=20}
      05-12 17:18:49.001 14135-14135/com.ansen.gson I/MainActivity: parseArrayList user:User{name='Uini', age=30}
      05-12 17:18:49.001 14135-14135/com.ansen.gson I/MainActivity: parseArrayList user:User{name='Lina', age=10}
      05-12 17:18:49.001 14135-14135/com.ansen.gson I/MainActivity: parseArrayList key:1 user:User{name='haha', age=11}
      05-12 17:18:49.001 14135-14135/com.ansen.gson I/MainActivity: parseArrayList key:2 user:User{name='nihao', age=22}
      05-12 17:18:49.001 14135-14135/com.ansen.gson I/MainActivity: jsonStr:{"name":"nime","age":111}
      

      源碼下載

      源碼下載

      posted @ 2017-05-12 17:36  安輝  閱讀(458)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 国产精品普通话国语对白露脸| 日本免费最新高清不卡视频| 激情国产av做激情国产爱| 国产三级精品片| 亚洲av综合久久成人网| 国产一级三级三级在线视| 会宁县| 黄色国产精品一区二区三区| 亚洲精品国产av成人网| 亚洲欧洲日产国码久在线| 国内精品久久人妻无码不卡| 起碰免费公开97在线视频| 久久无码中文字幕免费影院| 国偷自产一区二区三区在线视频| 精品精品国产国产自在线| 中文字幕无码av不卡一区| 亚洲女初尝黑人巨| 无遮挡高潮国产免费观看| 亚洲国产亚洲国产路线久久| 一个人免费观看WWW在线视频| 亚洲精品麻豆一二三区| 免费看欧美日韩一区二区三区| AV最新高清无码专区| 高清有码国产一区二区| 无码专区 人妻系列 在线| 无码人妻一区二区三区兔费| 人妻少妇精品专区性色av| 91精品久久一区二区三区| 亚洲精品在线二区三区| 亚洲 欧美 综合 另类 中字| 国产卡一卡二卡三免费入口| 国产精品免费看久久久| 一边添奶一边添p好爽视频| 韩国美女福利视频一区二区| 亚洲人成网站77777在线观看 | 国内精品久久毛片一区二区| 成人精品日韩专区在线观看| 黑人异族巨大巨大巨粗| 久久婷婷成人综合色综合| 麻豆天美东精91厂制片| 日韩国产中文字幕精品|