一、概述
- 什么是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年后也能用,没有任何兼容性问题。
- 语法格式
- 数组(Array)用方括号(“[]”)表示。
- 对象(0bject)用大括号(“{}”)表示。
- 名称/值对(name/value)组合成数组和对象。
- 名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
- 并列的数据之间用逗号(“,”)分隔
- 示例
{
"name": "zhangsan",
"age": 20,
"addr": "翻斗大街翻斗花园2号楼1001室",
"birthday": {
"year": 2003,
"month": 2,
"day": 2
},
"nickname": [
"hanhan",
"daerduo"
]
}
二、获取前端发送的json数据
- 不能使用request.getParameter(),需要使用java的io流读取
StringBuilder stringBuilder = null;
String jsonString = null;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
stringBuilder = new StringBuilder();
String str = "";
while ((str = bufferedReader.readLine()) != null) {
stringBuilder.append(str);
}
bufferedReader.close();
jsonString = stringBuilder.toString();
三、gosn
- 前面获取到前端的json数据后,该如何转换为对应的实体对象呢?以及拿到数据库中的数据后,该如何将数据转换为json传给前端呢?
- 放心,肯定不用我们自己去慢慢解析,转换,有现成的工具
- GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串
- 直接看下面这篇文章,说的细致,就不多说了
Gson