您的位置:首页 > Web前端 > JavaScript

Gson快速Json解析教程

2015-06-17 17:37 603 查看
Json 在开发应用中大家都不陌生,如何解析和创建也有很多方法可以参考。但是发现和多人还是用JSONObject来解析,其实并不反对这样做,只是讲究效率的今天,我们不应该把时间浪费在去揣摩一级一级节点结构上面。

其实Gson FastJson等第三方的Jar包在处理这些上面很强大,效率也比传统的JSONObject要快上不少,关键是省时间,一劳永逸!

好了不废话了,下面教大家如何快速的1分钟左右搞定复杂到爆的Json串的解析。

首先给大家介绍的Gson 或 FastJson库 其中之一,这个是不可少的。

然后给大家提供一个网站

Json转Pojo

可以直接把你需要的Json转成Java Bean

还有一个就是BeJson 也是很强大的网站

BeJson

刚刚试了下 http://www.jsonschema2pojo.org/ 这个貌似有时候不稳定,最近墙的厉害,受伤啊,Google也不能访问。。。

这里给大家举个简单的栗子:

{

"code": 200,

"message": "返回成功",

"programmers": [

{

"firstName": "Brett",

"lastName": "McLaughlin",

"email": "aaaa"

},

{

"firstName": "Jason",

"lastName": "Hunter",

"email": "bbbb"

},

{

"firstName": "Elliotte",

"lastName": "Harold",

"email": "cccc"

}

],

"authors": [

{

"firstName": "Isaac",

"lastName": "Asimov",

"genre": "sciencefiction"

},

{

"firstName": "Tad",

"lastName": "Williams",

"genre": "fantasy"

},

{

"firstName": "Frank",

"lastName": "Peretti",

"genre": "christianfiction"

}

],

"musicians": [

{

"firstName": "Eric",

"lastName": "Clapton",

"instrument": "guitar"

},

{

"firstName": "Sergei",

"lastName": "Rachmaninoff",

"instrument": "piano"

}

]

}

复制代码

上面帖的一段简单的Json,就拿这个做案例,来教大家怎么快速完成解析这一繁琐的工作。

分析这个Json串的结构我们会发现跟节点下有5个子节点

要注意的一点是 这里的变量名一定要和Json中的Key值对应上,而且大小写也要一致

分别是“programmers”、“authors”、“musicians” 这3个是数组,我们解析出来的话一般是用List<T> ,还有"code","message"这两个是基本类型。

然后我们可以构造第一级的Java Bean

public class RootBean{

public List<Programmer> programmers;

public List<Author> authors;

public List<Musician> musicians;

public int code;

public String message;

}

复制代码

然后是其他二级Bean

public class Programmer{

public String firstName;

public String lastName;

public String email;

}

复制代码

public class Author{

public String firstName;

public String lastName;

public String genre;

}

复制代码

public class Musician{

public String firstName;

public String lastName;

public String instrument;

}

复制代码

这里所有的Bean已经分析完了,然后我们看看解析的代码怎么去写这里我用的是Gson-2.2.4的jar 其实其他库也都类似,如果你是用其他库,也可以去试试,过程大致都是一样的

RootBean root;

Gson gson = new Gson();

root = gson.fromJson(tmp, RootBean.class);

复制代码

就这么简单,你已经得到了你需要的JavaBean了 还考虑什么,你还会喜欢去一个一个节点用JSONObject解析吗?

其实如果 http://www.jsonschema2pojo.org/ 这个网站可以用的话
直接能按我们的要求生成Pojo文件,我这里是自己按这Json的结构来自己写的,原理一样,用工具的优点就是节约在一些简单问题上花费的重复时间,希望给你们带来帮助!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: