gson解析mysql城市json数据_Gson解析复杂的json数据
首先我们需要定义一个序列化的Bean,这里采用内部类的形式,看起来会比较清晰一些:
1 public classJsonBean {2 publicString a;3 public Listb;4 publicC c;5
6 public static classB {7
8 publicString b1;9
10 publicString b2;11 }12
13 public static classC {14 publicString c1;15 publicString c2;16 }17 }
很多时候大家都是不知道这个Bean是该怎么定义,这里面需要注意几点:
1、内部嵌套的类必须是static的,要不然解析会出错;
2、类里面的属性名必须跟Json字段里面的Key是一模一样的;
3、内部嵌套的用[]括起来的部分是一个List,所以定义为 public List b,而只用{}嵌套的就定义为 public C c,
具体的大家对照Json字符串看看就明白了,不明白的我们可以互相交流,本人也是开发新手!
1 Gson gson = newGson();2 java.lang.reflect.Type type = new TypeToken() {}.getType();3 JsonBean jsonBean = gson.fromJson(json, type);
然后想拿数据就很简单啦,直接在jsonBean里面取就可以了!
如果需要解析的Json嵌套了很多层,同样可以可以定义一个嵌套很多层内部类的Bean,需要细心的对照Json字段来定义哦。
下面我将以一个具体的列子来说明通过Gson方式解析复杂的json数据
1.将要解析的数据如下面的格式
{
"error": 0,
"status": "success",
"date": "2014-05-10",
"results": [
{
"currentCity": "南京",
"weather_data": [
{
"date": "周六(今天, 实时:19℃)",
"dayPictureUrl": "http://api.map.baidu.com/images/weather/day/dayu.png",
"nightPictureUrl": "http://api.map.baidu.com/images/weather/night/dayu.png",
"weather": "大雨",
"wind": "东南风5-6级",
"temperature": "18℃"
},
{
"date": "周日",
"dayPictureUrl": "http://api.map.baidu.com/images/weather/day/zhenyu.png",
"nightPictureUrl": "http://api.map.baidu.com/images/weather/night/duoyun.png",
"weather": "阵雨转多云",
"wind": "西北风4-5级",
"temperature": "21 ~ 14℃"
}
]
}
]
}
2.必须定义如下一些的javaBean数据
Status.java
1 public classStatus2 {3 privateString error;4 privateString status;5 privateString date;6 private Listresults;7 publicString getError()8 {9 returnerror;10 }11 public voidsetError(String error)12 {13 this.error =error;14 }15
16 publicString getStatus()17 {18 returnstatus;19 }20 public voidsetStatus(String status)21 {22 this.status =status;23 }24 publicString getDate()25 {26 returndate;27 }28 public voidsetDate(String date)29 {30 this.date =date;31 }32 public ListgetResults()33 {34 returnresults;35 }36 public void setResults(Listresults)37 {38 this.results =results;39 }40 @Override41 publicString toString()42 {43 return "Status [error=" + error + ", status=" +status44 + ", date=" + date + ", results=" + results + "]";45 }46
Results.java
1 public classResults2 {3 privateString currentCity;4 private Listweather_data;5 publicString getCurrentCity()6 {7 returncurrentCity;8 }9 public voidsetCurrentCity(String currentCity)10 {11 this.currentCity =currentCity;12 }13 public ListgetWeather_data()14 {15 returnweather_data;16 }17 public void setWeather_data(Listweather_data)18 {19 this.weather_data =weather_data;20 }21 @Override22 publicString toString()23 {24 return "Results [currentCity=" + currentCity + ", weather_data="
25 + weather_data + "]";26 }
Weather.java
1 public classWeather {2 privateString date;3 privateString dayPictureUrl;4 privateString nightPictureUrl;5 privateString weather;6 privateString wind;7 privateString temperature;8 publicString getDate() {9 returndate;10 }11 public voidsetDate(String date) {12 this.date =date;13 }14 publicString getDayPictureUrl() {15 returndayPictureUrl;16 }17 public voidsetDayPictureUrl(String dayPictureUrl) {18 this.dayPictureUrl =dayPictureUrl;19 }20 publicString getNightPictureUrl() {21 returnnightPictureUrl;22 }23 public voidsetNightPictureUrl(String nightPictureUrl) {24 this.nightPictureUrl =nightPictureUrl;25 }26 publicString getWeather() {27 returnweather;28 }29 public voidsetWeather(String weather) {30 this.weather =weather;31 }32 publicString getWind() {33 returnwind;34 }35 public voidsetWind(String wind) {36 this.wind =wind;37 }38 publicString getTemperature() {39 returntemperature;40 }41 public voidsetTemperature(String temperature) {42 this.temperature =temperature;43 }44 @Override45 publicString toString() {46 return "Weather [date=" + date + ", dayPictureUrl="
47 + dayPictureUrl + ", nightPictureUrl="
48 + nightPictureUrl + ", weather=" +weather49 + ", wind=" + wind + ", temperature=" +temperature50 + "]";51 }52
然后具体的javabean定义好了就将解析数据了,下面就是我的解析数据类
1 public class MainActivity extendsActivity2 {3 privateButton tojson;4 RequestQueue mQueue;5 StringRequest stringRequest;6 Gson gson;7 String str;8
9 @Override10 protected voidonCreate(Bundle savedInstanceState)11 {12 super.onCreate(savedInstanceState);13 setContentView(R.layout.activity_main);14
15 tojson =(Button)findViewById(R.id.tojson);16 gson = newGson();17
18 mQueue = Volley.newRequestQueue(MainActivity.this);19 //http://10.19.20.12/upgrade/test.txt是测试使用的json数据
20 stringRequest = new StringRequest("http://10.19.20.12/upgrade/test.txt",21 new Response.Listener()22 {23 @Override24 public voidonResponse(String response)25 {26 Log.d("TAG", response);27 System.out.println("response="+response);28 Status status = gson.fromJson(response, Status.class);29 System.out.println("status="+status);30 System.out.println("-------------------------------------");31 List result =status.getResults();32 System.out.println("result="+result);33
34 }35 },36 newResponse.ErrorListener()37 {38 @Override39 public voidonErrorResponse(VolleyError error)40 {41 Log.e("TAG", error.getMessage(), error);42 }43
44 });45
46 tojson.setOnClickListener(newOnClickListener()47 {48 @Override49 public voidonClick(View v)50 {51 mQueue.add(stringRequest);52 }53 });54 }55
56
57
58 }
其中上面的RequestQueue是开源网络库Volley的使用,如果你对该库的使用还不熟悉的话可以参考前面的文章,其中对Volley的讲解也很详细了,相信各位朋友很快便能领悟出来。
gson解析mysql城市json数据_Gson解析复杂的json数据相关推荐
- python向kafka发送json数据_python3实现从kafka获取数据,并解析为json格式,写入到mysql中...
项目需求:将kafka解析来的日志获取到数据库的变更记录,按照订单的级别和订单明细级别写入数据库,一条订单的所有信息包括各种维度信息均保存在一条json中,写入mysql5.7中. 配置信息: [Gl ...
- Java解析中国城市Json数据
由于城市列表基本是固定不变的,App可以读取本地文件来显示城市列表,这里使用Json数据把城市列表保存起来,在代码中解析Json数据显示就方便,在此把它记录下来,这里的城市列表是根据地图得到的,方便以 ...
- Android开发--Json数据的解析
在执行解析数据之前,需要将一个类库应用到你的程序中,下载的地址是: http://code.google.com/p/google-gson/ 下载解压之后你需要将蓝色标记的文件放入到你的程序之中应用 ...
- c语言json映射,GitHub - xujun621/cson: 基于C语言的json数据映射解析库
CSON 基于cJSON,运行于C语言平台的json-struct模型解析工具 简介 CSON是一个简单的cJSON的二次封装,相比于使用原生cJSON一层一层解析的方式,CSON采用模型映射的方式, ...
- Android系统 (190)---Android:JSON 简介 amp; 解析方式 讲解(Gson、AS自带org.json、Jackson)
Android:JSON 简介 & 解析方式 讲解(Gson.AS自带org.json.Jackson) 前言 现今最主流的数据交换格式 非 JSON莫属 今天,我将全面介绍 JSON &am ...
- Android系统(96)---Android 数据交换解析框架Gson使用详解
Android 数据交换解析框架Gson使用详解 Json 是一种文本形式的数据交换格式,比 xml 更为轻量.Json 的解析和生成的方式很多,在 Android 平台上最常用的类库有 Gson 和 ...
- mysql mongodb binlog_订阅MongoDB的数据变更比解析mysql的binlog更简单
前言 我们开源了一个订阅分发mysql的binlog的项目,一直用的非常好,忽然有天开发说能不能支持MongoDB的数据订阅呢,MongoDB的使用度也挺广泛的.安排.经过简单的了解后发现MongoD ...
- JSON数据的解析方式
解析的四种方式 官方解析 谷歌 Gson 解析 阿里巴巴 FastJson 解析 Jackson 解析 案例实操 这里我们就只讨论对象与 json 如何互相转换. 这里我们先创建好 Maven 项目, ...
- sql解析json格式字段、sql关联json格式字段,mysql解析json、sql解析json字符串
sql解析json格式字段.sql关联json格式字段,mysql解析json.sql解析json字符串 sql解析字符串 sql关联json中的某个字段 sql解析字符串 表名user_login ...
最新文章
- 深度学习运行python文件,出现跨路径搜索其他module,怎么解决?
- 跨专业选修C语言看什么书,跨专业考研如何选择?!!!!!
- 文献记录(part61)--基于不完备数据聚类的缺失数据填补方法
- GridControl动态添加 颜色列
- cvMorphology形态学原理解析及源码分析
- mysql时间聚合_11.MySQL数值、日期和时间、信息、聚合函数
- 【软件开发底层知识修炼】二十七 C/C++中的指针与数组是不同的
- 麦森数(洛谷-P1045)
- ROS: global_planner 整体解析
- python爬虫之requests模块2
- Android measure过程分析
- 十分钟读懂 黑客如何入侵Windows 操作系统
- Unity基础知识结构总结
- 用R语言做数据分析——时间序列分类
- 冯乐乐之六,基础光照模型
- matlab加速度转化为位移,加速度转换成位移的matlab代码及说明
- 通过驱动断链来隐藏驱动
- 关于安装anaconda错误:failed to create anaconda menus
- oppo手机投屏到电脑上
- 使用 htop 和 ps 来监控 Linux 运行
热门文章
- R语言ggplot2可视化:在可视化图像中添加对角线(diagonal line)
- R语言使用lmPerm包应用于线性模型的置换方法(置换检验、permutation tests)、使用lm模型构建简单线性回归模型、使用lmp函数生成置换检验回归分析模型
- pandas将dataframe日期数据列的日期转化为日期当月第一天(每月1号)的日期并生成新的数据列(Setting date to beginning of month in dataframe)
- Pandas批量删除dataframe列名中的后缀实战:使用rstrip函数批量删除列名中的后缀(suffix)、使用replace函数批量删除列名中的后缀(suffix)
- 什么是信度分析(Reliability)?有哪些信度分析方法?那什么又是效度?
- 泊松回归、gamma回归、Tweedie回归等广义线性回归模型GLM的评估指标:校准曲线、 洛伦兹曲线、卡方检验、AIC、BIC、偏差(Deviance)指标
- java语言仅支持单重继承_java语言程序设计基础篇习题_复习题_第十一章
- NCBI下载SRA数据的4种方法
- 有一间计算机教室英语,妙手巧动微机教室实施外语视听教学
- JAVA数组编程教程_Java语言编程基础:数组