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#
例子代码如下
package org.heim.gson; import java.util.ArrayList;
import java.util.List;
import java.util.Map; import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import com.google.gson.reflect.TypeToken; public class DemoParser { public static void main(String[] args) { // parser2Object(); // parser2List(); // parser2Map(); // json 节点解析
String json = "{'flag':true,'data':{'name':'张三','age':18,'sex':true}}";
// 1.获得 解析者
JsonParser parser = new JsonParser(); // 2.获得 根节点元素
JsonElement element = parser.parse(json); // 3.根据 文档判断根节点属于 什么类型的 Gson节点对象
JsonObject root = element.getAsJsonObject(); // 4. 取得 节点 下 的某个节点的 value
JsonPrimitive flagJson = root.getAsJsonPrimitive("flag");
boolean flag = flagJson.getAsBoolean(); JsonObject dataJson = root.getAsJsonObject("data");
Student student = new Gson().fromJson(dataJson, Student.class); System.out.println(flag);
System.out.println(student); } private static void parser2Element() {
String json = "{'flag':true,'data':[{'name':'张三','age':18,'sex':true},{'name':'李四','age':14,'sex':true},{'name':'王二','age':12,'sex':true}]}";
// 1.获得 解析者
JsonParser parser = new JsonParser(); // 2.获得 根节点元素
JsonElement element = parser.parse(json); // 3.根据 文档判断根节点属于 什么类型的 Gson节点对象
JsonObject root = element.getAsJsonObject(); // 4. 取得 节点 下 的某个节点的 value
JsonPrimitive flagJson = root.getAsJsonPrimitive("flag");
boolean flag = flagJson.getAsBoolean();
JsonArray array = root.getAsJsonArray("data");
ArrayList<Student> students = new ArrayList<Student>();
for (JsonElement obj : array) {
students.add(new Gson().fromJson(obj, Student.class));
}
System.out.println(flag);
System.out.println(students.get(0).getName());
System.out.println(students.get(1).getName());
System.out.println(students.get(2).getName());
} private static void parser2Map() {
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}}"; Gson gson = new Gson();
TypeToken<Map<String, Student>> token = new com.google.gson.reflect.TypeToken<Map<String, Student>>() {
};
Map<String, Student> stus = gson.fromJson(json, token.getType()); System.out.println(stus);
} private static void parser2List() { 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}]"; Gson gson = new Gson();
TypeToken<List<Student>> token = new com.google.gson.reflect.TypeToken<List<Student>>() {
};
List<Student> stus = gson.fromJson(json, token.getType()); System.out.println(stus);
} private static void parser2Object() {
// json转换 为简单对象
String json = "{'name':'张三','age':18,'sex':true}"; Gson gson = new Gson(); Student student = gson.fromJson(json, Student.class);
System.out.println(student);
}
}
Gson解析的小例子的更多相关文章
- Gson解析List的一点小问题
这阵子在使用gson解析时遇到了点小麻烦,因为一直用的fastjson,最近一个项目里使用的gson,需要解析list集合,查资料都是使用TypeToken解决,相对比较麻烦,下面为大伙推荐一种简便的 ...
- C# Newtonsoft.Json解析数组的小例子[转]
https://blog.csdn.net/Sayesan/article/details/79756738 C# Newtonsoft.Json解析数组的小例子 http://www.cnblog ...
- springmvc入门的第一个小例子
今天我们探讨一下springmvc,由于是初学,所以简单的了解一下 springmvc的流程,后续会持续更新... 由一个小例子来简单的了解一下 springmvc springmvc是spring框 ...
- java即时通信小例子
学习java一段时间了,今天写来一个即时通信的小例子练手在其过程中也学到了一些知识拿出来和大家分享,请路过的各位大神多多赐教... 好了下面讲一下基本的思路: 首先,编写服务器端的程序,简单点说吧就是 ...
- 使用Gson解析json
前边的博客说过将json解析成java的方法,使用的是 这几个jar包,但是在解析时层遇到一个问题,就是在将时间字符串转换为java的Timestamp对象时会抛出异常,这个问题一直放在哪里没有去解决 ...
- INI配置文件分析小例子
随手写个解析INI配置字符串的小例子 带测试 #include <iostream> #include <map> #include <string> #inclu ...
- Gson解析复杂的json数据
最近在给公司做一个直播APK的项目,主要就是通过解析网络服务器上的json数据,然后将频道地址下载下来再调用Android的播放器进行播放,原先本来打算使用普通的json解析方法即JsonObject ...
- android json解析及简单例子
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...
- 使用Gson解析复杂的json数据
Gson解析复杂的json数据 最近在给公司做一个直播APK的项目,主要就是通过解析网络服务器上的json数据,然后将频道地址下载下来再调用Android的播放器进行播放,原先本来打算使用普通的jso ...
随机推荐
- iOS各个版本的新特性介绍
官方汇总 What's News in iOS iOS 9.3 to iOS 10.0 API Differences Objective-C /usr/include Accelerate Audi ...
- html5开发之viewport使用
随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择.然而,每一款手机有不同的分辨率,不同屏幕 ...
- Cocos2d-JS项目之四:UI界面的优化
测试环境: iphone4.iOS6.1.2.chrome 37.2062.60,Cocos2d-js 3.6 之前写了不少,实际项目也按这个去优化了,也有效果,但到最后才发现,尼玛,之前都搞错了,之 ...
- Schema Workbench 开发mdx和模式文件
一.前言 安装了saiku之后,每次修改schema文件,非常耗时,每次都要经历若干步骤:修改xml.上传.重启才能生效,并且非常不利于学习和理解MDX和模式文件,踌躇之际,发现了这个工具,十分小巧方 ...
- win10下LPT并口打印失败和POS打印机的钱箱不能打开,win10的坑
最近在弄一个收银软件,因为使用到了触摸屏,该PC出厂安装的是老掉牙的XP.SSD固态硬盘,装XP实在是太浪费了.然后尝试了WIN7发现不能激活,然后试win8.1发现比较满意终于觉得配得上触摸屏了,但 ...
- web通过ActiveX打印
最近做了一个activex控件,可以通过html页面动态设置报表文件的数据,控件里的报表是通过FastReport实现了,可以通过FastReport先把报表设置好.欢迎大家提意见 控件及Demo下载
- ecslipe cdt lib link
项目属性-> settings -> mingw c linker 1.libs search 填写lib路径 2.lib 填写文件名,不要后缀
- Tomcat自动部署
在Tomcat的server.xml配置文件中部署 1.在Tomcat下,找到conf文件下的server.xml,打开. 2.在<Host>和</host>之间加上如下代码: ...
- Debian 基本设置
在此做一下记录,省得以后再老是去搜索了 我的debian版本v:8.1.0 我是在Hyper-V中装的,启动后一直ping不通网址,后来才知道Debian不能直接ping域名,只能ping IP... ...
- 图文详解远程部署ASP.NET MVC 5项目 [转载]
话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...