JSON

Android实战中与Json数据、Java

字号+ 作者:H5之家 来源:H5之家 2017-07-29 14:03 我要评论( )

在实际开发中,难免会与网络数据打交道,这就涉及到Json数据字段分析、解析,转换成JavaBean等相关内容。那么本文就围绕这几个点,为大家介绍几个技巧、插件,提

在实际开发中,难免会与网络数据打交道,这就涉及到Json数据字段分析、解析,转换成JavaBean等相关内容。那么本文就围绕这几个点,为大家介绍几个技巧、插件,提升开发效率。下面开始正文。1.准备数据首先,我们需要有...

在实际开发中,难免会与网络数据打交道,这就涉及到 Json 数据字段分析、解析,转换成 Java Bean 等相关内容。那么本文就围绕这几个点,为大家介绍几个技巧、插件,提升开发效率。

下面开始正文。

1. 准备数据

首先,我们需要有数据,以我在聚合数据上申请的菜谱大全为例[只有免费的1000次,用完就没了,请惜之],接口地址如下:

点击访问 api 接口

如果你发现上面的接口失效了,我备份了一份,访问 并手动复制即可。

其实,你完全可以自己申请一个 key 来测试,把上面接口的 key 换成你申请的就可以了。

申请地址:https://www.juhe.cn/docs/api/id/46

2.直观的查看数据

类似于上面的接口,在开发中,后台同事给了接口,我们肯定要先看一眼,确认下是什么样的数据格式。那怎么看呢?把上面的接口粘贴到浏览器的地址栏,回车:

直接查看 Json 数据.png

卧槽,这乱七八糟的怎么看?

你在逗我.png

想必你和我一样,第一反应是崩溃的。别着急,自有办法。

使用 Chrome 浏览器的同学,可以借助 Json-handle 插件方面的查看 Json 数据:对JSON格式的内容进行浏览和编辑,以树形图样式展现JSON文档,并可实时编辑。

这是我用过的最好用的 Json 展示和编辑插件,如果有更好的,欢迎推荐。在 Chrome 商店中的地址如下:

https://chrome.google.com/webstore/detail/json-handle/iahnhfdhidomcpggpaimmmahffihkfnj?hl=zh-CN

装好插件后,再次刷新刚才的 api 地址,神奇的一幕发生了:

使用 Json-handle 查看.png

是不是很清晰?展开、收起,想怎么看就怎么看。许多对 Json 数据结构不了解的童鞋,可以借这个插件学习分析 Json 结构,很直观。

同时,其还具备其它同类插件没有的功能,直接将光标放在图片 URL 上,可以直接预览图片,GIF 也可以:

Json-handle 预览图片.png

更多功能等你去探索,我们接着往后。

3.生成 Json 对应的 Java Bean

预览返回的 Json 数据后,你可能已经迫不及待想要解析数据了。且慢,在此之前,我们还差一步:生成 Java Bean,也就是我们常说的实体对象,这样才能将返回的 Json 数据转化成内存中的对象使用。

一说到这,我们立马头大了,再次预览上面的数据:

再次预览结构.png

我们的核心是 result 对象,其包含了一个 data 数组,对应着10个菜谱对象;每个菜谱对象又包含若干属性,有简单的类似 id,title的字段,但也有 albums,steps这样的复杂数组...

这样的数据结构,其复杂程度应该不亚于实际开发中大多数场景了。但是,这岂能难倒我们?

要知道这是我精心挑选出来做示例的 API,没有难度怎么有说服力。下面一起来秒杀它!

秒杀.jpg

根据上面的分析,假设我们关心 result 所包含的数据,那么我们的 Bean 实体的数据结构最后大致是这样的:

//result public class CookRequestResult { //result 包含的 data 数组,即若干菜谱 private List<DataBean> data; //data 中每个菜谱对象 public static class DataBean { //菜谱的 steps,即做菜时的若干步骤 private List<StepsBean> steps; //每个步骤对象 public static class StepsBean { } } }

上述抛开了基本类型字段,简化后概括来说:

CookRequestResult 包含 DataBean 对象集合,DataBean 中又包含 StepsBean 对象集合。分别对应上面的 api 返回的 result,data 和 steps。

这样一个数据结构,手写起来,不仅麻烦,还容易出错,如何是好?这就轮到本文的第二个插件 GsonFormat 登场了。

登场.gif

下面简单说下从安装到使用的过程:

具体使用哪种方式看自己需求了,这块没有技巧可言,靠的是扎实的技术基础。

5.序列化对象

至此,我们已经可以从容的应对 Json 的分析、生成 Java Bean 和解析 Json数据,还差最后一步:序列化 Java Bean。

在开发中,我们难免需要在组件之间传递数据,比如从列表页点击进入详情,此时通过 Intent 传递数据时就需要序列化对象。序列化对象的方式,一般有两种:

一想到 Parcelable 实现起来的复杂程度,我们懒癌又犯了,忍不住说服自己实现 Serializable,毕竟现在手机性能都不差,不差那点~~

但是,有些人懒癌比我们还严重,他们既考虑到性能问题,又希望自动生成实现 Parcelable 接口时需要写的代码。于是乎,对应的插件应运而生,一劳永逸。

我很欣赏你.jpg

序列化的效果就是上面贴出的代码,就不重复贴了。

最后,让 StepsBean 也实现 Parcelable,异曲同工了啊。

收工,关电脑出去浪,不负好时光~

6.总结

至此,本文告一段落了。由于篇幅有限,许多细节没有展开讲,不过事无巨细,我把工具、思路抛出来,各位可以自行查阅、实践。实践过程中,有任何问题都可以留言提出。

来源:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Android的Gradle技巧 4.3排除任务

    Android的Gradle技巧 4.3排除任务

    2017-07-06 08:02

  • ubuntu移植jsoncpp到Android平台

    ubuntu移植jsoncpp到Android平台

    2017-07-04 18:00

  • Android 解析JSON数据格式

    Android 解析JSON数据格式

    2017-06-26 18:04

  • Android开发学习之路-网络编程之xml、json

    Android开发学习之路-网络编程之xml、json

    2017-06-13 13:03

网友点评