zoukankan      html  css  js  c++  java
  • Gson解析的小例子

    最近解析些复杂的节点数据解析,用安卓自带的json解析比较麻烦所以只能用Gson解析,所以从网上下了点demo来看看

    http://blog.csdn.net/tkwxty/article/details/34474501这个看看还不错

    SessionId的本质

    http://www.cnblogs.com/japanbbq/archive/2011/09/01/2161650.html

    http://www.cnblogs.com/haippy/archive/2012/05/20/2509329.html#

    例子代码如下

      1 package org.heim.gson;
      2 
      3 import java.util.ArrayList;
      4 import java.util.List;
      5 import java.util.Map;
      6 
      7 import com.google.gson.Gson;
      8 import com.google.gson.JsonArray;
      9 import com.google.gson.JsonElement;
     10 import com.google.gson.JsonObject;
     11 import com.google.gson.JsonParser;
     12 import com.google.gson.JsonPrimitive;
     13 import com.google.gson.reflect.TypeToken;
     14 
     15 public class DemoParser {
     16 
     17     public static void main(String[] args) {
     18 
     19         // parser2Object();
     20 
     21         // parser2List();
     22 
     23         // parser2Map();
     24 
     25         // json 节点解析
     26         String json = "{'flag':true,'data':{'name':'张三','age':18,'sex':true}}";
     27         // 1.获得 解析者
     28         JsonParser parser = new JsonParser();
     29 
     30         // 2.获得 根节点元素
     31         JsonElement element = parser.parse(json);
     32 
     33         // 3.根据 文档判断根节点属于 什么类型的 Gson节点对象
     34         JsonObject root = element.getAsJsonObject();
     35 
     36         // 4. 取得 节点 下 的某个节点的 value
     37         JsonPrimitive flagJson = root.getAsJsonPrimitive("flag");
     38         boolean flag = flagJson.getAsBoolean();
     39 
     40         JsonObject dataJson = root.getAsJsonObject("data");
     41         Student student = new Gson().fromJson(dataJson, Student.class);
     42 
     43         System.out.println(flag);
     44         System.out.println(student);
     45 
     46     }
     47 
     48     private static void parser2Element() {
     49         String json = "{'flag':true,'data':[{'name':'张三','age':18,'sex':true},{'name':'李四','age':14,'sex':true},{'name':'王二','age':12,'sex':true}]}";
     50         // 1.获得 解析者
     51         JsonParser parser = new JsonParser();
     52 
     53         // 2.获得 根节点元素
     54         JsonElement element = parser.parse(json);
     55 
     56         // 3.根据 文档判断根节点属于 什么类型的 Gson节点对象
     57         JsonObject root = element.getAsJsonObject();
     58 
     59         // 4. 取得 节点 下 的某个节点的 value
     60         JsonPrimitive flagJson = root.getAsJsonPrimitive("flag");
     61         boolean flag = flagJson.getAsBoolean();
     62         JsonArray array = root.getAsJsonArray("data");
     63         ArrayList<Student> students = new ArrayList<Student>();
     64         for (JsonElement obj : array) {
     65             students.add(new Gson().fromJson(obj, Student.class));
     66         }
     67         System.out.println(flag);
     68         System.out.println(students.get(0).getName());
     69         System.out.println(students.get(1).getName());
     70         System.out.println(students.get(2).getName());
     71     }
     72 
     73     private static void parser2Map() {
     74         String json = "{'小3':{'name':'小3','age':20,'sex':true},'小4':{'name':'小4','age':21,'sex':false},'小5':{'name':'小5','age':22,'sex':true},'小1':{'name':'小1','age':18,'sex':true},'小2':{'name':'小2','age':19,'sex':false}}";
     75 
     76         Gson gson = new Gson();
     77         TypeToken<Map<String, Student>> token = new com.google.gson.reflect.TypeToken<Map<String, Student>>() {
     78         };
     79         Map<String, Student> stus = gson.fromJson(json, token.getType());
     80 
     81         System.out.println(stus);
     82     }
     83 
     84     private static void parser2List() {
     85 
     86         String json = "[{'name':'小1','age':18,'sex':true},{'name':'小2','age':19,'sex':false},{'name':'小3','age':20,'sex':true},{'name':'小4','age':21,'sex':false},{'name':'小5','age':22,'sex':true}]";
     87 
     88         Gson gson = new Gson();
     89         TypeToken<List<Student>> token = new com.google.gson.reflect.TypeToken<List<Student>>() {
     90         };
     91         List<Student> stus = gson.fromJson(json, token.getType());
     92 
     93         System.out.println(stus);
     94     }
     95 
     96     private static void parser2Object() {
     97         // json转换 为简单对象
     98         String json = "{'name':'张三','age':18,'sex':true}";
     99 
    100         Gson gson = new Gson();
    101 
    102         Student student = gson.fromJson(json, Student.class);
    103         System.out.println(student);
    104     }    
    105 }
  • 相关阅读:
    影评
    札记
    竞赛203
    竞赛201
    StopWatch的使用
    mysql:GROUP_CONCAT
    DispatcherServlet核心方法doDispatch解析
    class对象与实例对象
    mybatis与传统ORM框架的区别
    servlet容器中listener、filter、interceptor的启动顺序
  • 原文地址:https://www.cnblogs.com/wangfengdange/p/5422085.html
Copyright © 2011-2022 走看看