码迷,mamicode.com
首页 > 其他好文 > 详细

Gson解析的小例子

时间:2016-04-24 21:44:42      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

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

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

例子代码如下

  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 }

 

Gson解析的小例子

标签:

原文地址:http://www.cnblogs.com/wangfengdange/p/5422085.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!