首先回顾一下JSON:
JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换文本信息的语法,类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON中,我们首先要理解两个最基本的概念,第一、对象,第二、数组。
JSON中,用 { }来描述一个对象,一个对象有不同的属性,每个属性都必须用 ""括起来,每个属性对应有属性值,如果属性值为字符串,则也用 ""括起来,如果属性值为非字符串,则不用双引号括起来;用 [ ] 来描述一个数组,数组可存储多个对象,每个对象间用 , 隔开(以上所说的符号为英文半角符号)。
如描述一个员工对象:
JSON对象
描述一个员工对象数组:
JSON对象数组
如果对编写的JSON字符串有疑虑,为了确保准确性,可以使用JSON在线校验工具检查格式是否正确!
在哪些场景下,我们用JSON比较多呢?
场景一:在JavaScript中使用JSON对象,如
JavaScript中定义JSON对象及数组
JSON字符串时常需要转换成JSON对象来处理,则我们可以使用eval函数,如:
使用eval函数把JSON字符串转换成JSON对象
在ECMAScript 5中提供了JSON JS对象,可以直接使用JSON.parse(jsonStr)把JSON字符串转换成JSON对象,这个时候就不需要使用eval函数啦;也可以直接使用JSON.stringify(jsonObj);把JSON对象转换成JSON字符串。
JSON对象与字符串的相互转换
场景二:使用AJAX从前端把请求提交到后台,在JavaEE Servlet中返回JSON字符串到前端,如
AJAX POST请求提交到后台
后台Servlet返回JSON字符串
我们可以看到如果JSON字符串由我们自己直接组装那是相当的麻烦,出错的概率也很大,所以我们可以借助一些JSON处理的JAR包帮助我们在后台完成Java对象到JSON字符串的转换,如阿里巴巴提供的fastjson,Google提供的gson,还有json-lib等。
场景三:在Struts2中返回JSON字符串到前端,需要借助 struts-json-plugin插件
场景四:在SpringMVC中返回JSON字符串到前端,在需要返回JSON字符串的方法前加 @ResponseBody注解
场景五:使用QQ开放接口,微信支付等接口,接口返回的数据往往是JSON字符串
场景六:开发APP手机应用,从手机应用对应的后台服务返回的数据往往也是JSON字符串
场景七:对菜鸟程序员说,你会用JSON吗?