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的结构来自己写的,原理一样,用工具的优点就是节约在一些简单问题上花费的重复时间,希望给你们带来帮助!
其实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的结构来自己写的,原理一样,用工具的优点就是节约在一些简单问题上花费的重复时间,希望给你们带来帮助!
相关文章推荐
- 【JavaScript】(2)选项卡切换
- ExtJs4 之 TreePanel
- extjs4 之 Grid 列编辑
- ExtJs4之Grid配置信息
- JavaScript 学习笔记(1):关于函数、对象以及面向对象
- 几种Json工具包的解析速度对比
- JS基础学习笔记(一)
- JS 创建对象(常见的几种方法)
- js对象及new对象/函数的比较区别
- JS当前日期相加相减
- javascript获取鼠标坐标
- js写分页
- js经验1
- js时间转换相关
- javascript 数组
- 理解Javascript的动态语言特性
- John:How JavaScript Timers Work
- jstl_fmt
- jstl_fmt
- 浅谈Javascript事件模拟