一、JSON是什么
- JSON,全称是 JavaScript Object Notation,即 JavaScript对象标记法。
- JSON是一种轻量级(Light-Meight)、基于文本的(Text-Based)、可读的(Human-Readable)格式。
- JSON 的名称中虽然带有JavaScript,但这是指其语法规则是参考JavaScript对象的,而不是指只能用于JavaScript 语言。
- JSON无论对于人,还是对于机器来说,都是十分便于阅读和书写的,而且相比 XML(另一种常见的数据交换格式),文件更小,因此迅速成为网络上十分流行的交换格式。
- 近年来JavaScript已经成为浏览器上事实上的标准语言,JavaScript 的风靡,与JSON 的流行也有密切的关系。
- 因为JSON本身就是参考JavaScript 对象的规则定义的,其语法与JavaScript定义对象的语法几乎完全相同。
- JSON格式的创始人声称此格式永远不升级,这就表示这种格式具有长时间的稳定性,10 年前写的文件,10年后也能用,没有任何兼容性问题。
二、JSON语法
JSON 的语法规则十分简单,可称得上“优雅完美”,总结起来有:
- 数组(Array)用方括号(“[]”)表示。
- 对象(0bject)用大括号(“{}”)表示。
- 名称/值对(name/value)组合成数组和对象。
- 名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
三、JSON数据和JAVA对象互转
请求数据:JSON字符串转化为Java对象
响应数据:Java对象转换为JSON字符串
阿里爸爸为我们提供了一个高性能高能完善的JSON库,这里我们直接使用就好啦
1、导入 坐标
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
2、Java对象转JSON
String jsonStr = JSON.toJSONString(obj);
3、JSON字符串转JAVA对象
//jsonStr:前端发送回来的JSON数据
//User:JAVA实体类
User user = JSON.parseObject(jsonStr,User.class);
小tips:
JAVA对象转JSON串的时候,会自动调用实体类里的所有get方法作为键(去掉get前缀后首字母换为小写),return作为值
比如实体类的:getDemo()会在JSON串里生成一个key为demo的键值对
那这个方法有什么用呢?
比如我们在编写页面时候,有一个status状态要展示到前台,然而我们数据库里存的status是0或1这种数字,用户观感很不好,这时候我们就可以在实体类中多写一个方法返回对应的汉字
我们添加一个方法
然后在前台页面展示后的时候调用这个方法所生成的JSON串里key值
大功告成