解析JSON数据的详细步骤以及偷懒技巧(使用第三方库JSON)

解析JSON数据的详细步骤(使用第三方库JSON

我们在编写android程序的时候,当涉及到网络交互的时候,需要对数据的格式进行规范。目前最常用的两种格式是XML格式和JSON格式,XML且不谈,我们先来说说JSON

什么是JSON?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括CC++C#JavaJavaScriptPerlPython等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)------来自度娘

 

下面进入干货,分享关于我解析JSON数据时的步骤------

拿到一个JSON数据,首先从一个简单的JSON数据开始:

 

上图更直观点。

JSON{ }中间的是一个JSONObject,而[ ]之间是JSONArray

JSON是按照key-value配对的,在JSONObjectkey是一个String,在JSONArraykeyint

构建JavaBean(把JSON数据转化为JavaBean)

看上图,可以看到JSON数据很有层次结构。因为数据很简单,我们就不用辅助工具来观察。

一、

我们先看到最外面的一个{ },这个是JSON数据的根节点,我们设置一个Root类。

Root类:

Root类里面有三个变量,初始化它们。

Public class Root{

private String reason;

private Result result;

private int error_code;

//然后对着三个变量getter()和 setter(); 

}

Tips:在Android Studio中有快捷键,光标停留在你要添加方法的地方,鼠标右键-> Generate ->解析JSON数据的详细步骤以及偷懒技巧(使用第三方库JSON)_第1张图片 ,方便又快捷。

 

二、

在上面代码中我们自定义了一个Result类,我们现在来实现这个类,

public class Result{ 

private String title;

private List<Bean_Station> list;

//getter() 和 setter()方法;

}

上面代码我们使用了一个List<Bean_Station>,我们在看JSON数据中的对应”list”这个key是一个[ ],表示list里面是一个数组,数组里面又是一个新的JSONObject,所以我们要把它定义成为一个list<?>的类型。

Tips:在你命名类名的时候可以不按照key值命名,可是当你实例化这个类为对象的时候一定要用key值对应的为这个实例的名字,不然会报错的。比如List<Bean_Station>就一定要命名为list,不能为其他的名字。我不会告诉你我之前就犯过这个错误的~

三、

最后就是实现Bean_Station这个类了,还是一样的

public class Bean_Station{

private String name;
  private String tel;
   private String adds;

  //对应的setter()getter();

}

测试

下载GSON.jar,网上资源一大把,粘贴在libs目录下,点击右键,add as library,等AS自动构建一下,就可以使用GSON这个库了。

MainActivity两行代码搞定问题

Gson gson = new Gson();

//Config.testJSON3是我放在本地的数据,也就是刚刚那个数据已一个字符串形式保存的
     Root root = gson.fromJson(Config.testJSON3, Root.class);

 

得到的root对象,我们来打断点调试一下看看里面的数据


 

以上是简单解析JSON数据的步骤。

 

 

我们其实可以偷偷懒

其实到了现在,建立JavaBean这种繁复却可以找到规律的工作,已经可以不需要我们程序员自己实现了,有很多种方法可以完成,减少我们的工作量。

方法一:在网页上使用别人的在线工具

网址:http://www.atool.org/json2javabean.php

  解析JSON数据的详细步骤以及偷懒技巧(使用第三方库JSON)_第2张图片

这是在百度搜索到的一个在线JSON转化为JavaBean工具,感觉蛮不错的,推荐给大家

  而且当你输入的JSON数据有错时,会提示你出错的位置,比较方便。

    方法二:Android Studio强大的插件-------GsonFormat

安装方法:File -> Setting -> Plugins -> Browse repositories -> input GsonFormat -> install -> restart Android Studio

图片示例如下:


 

安装完成后,可以来试验GsonFormat到底如何了,我们来测试一下。

新建一个类,命名为Test.class

在类中,右键Generate -> GsonFormat -> input JSON data -> OK

这次我们输入一个稍微复杂的JSON数据,来自于聚合数据 -> 天气预报接口

可以看到,我们生成了Virgo Model视图。

视图内对应KeyValueData Type, FiledName


 

点击 OK,在Test类里面生成了JAVA代码,我们来看Test类的Structure目录,其中有一个小问题,他其中有重复类名,Pm25Entity有两个。

 

改变类的名字,完事。

 

我们在MainActivity里面使用GSON.jarDebug一下。

 解析JSON数据的详细步骤以及偷懒技巧(使用第三方库JSON)_第3张图片

完美。

 

总结

当下次我们需要解析从服务器获取的JSON数据的时候,如果需要构建JavaBean的话,我们可以用GsonFormat构建JavaBean,然后用GSON.jar中的Gson.fromJSON“JSON数据”,JavaBean.class),(注意JSON数据里面有一些重复的类名的时候会导致出错,在Structure目录中找找是否有重复类)。

你可能感兴趣的:(android,json,gson,javabean,Studio,GsonFormat)