发表于: 2018-04-04 22:59:13
1 578
今天完成的事情:
学习了jsontaglib,完成接口
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 Json是一种解析服务器数据的一种方式,与XML共为解析服务器数据的主流方式.不过相对于XML解析来说,Json有属于自己的优点:
1,轻量级的数据交换格式
2,人们读写更加容易
3,易于机器的解析和生成
4,能够通过JavaScript中eval()函数解析JSON
5,JSON支持多语言。
JSON有两种表示结构,对象和数组。
1,对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。
{
key1:value1,
key2:value2,
...
}
其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组
2,数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。
[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]
这里有三个概念有关于字符串和json字符串,对象
字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };
看过了json的基本概念后,总的说来json就是一种数据的结构化表示方法,并且json采用完全独立于语言的文本格式,因此可以被很多语言解析和序列化.
对于我们来说,我们主要在jsp页面中用到它.
json-taglib是符合json语法规则的json标签库
在程序中我们要用到它首先要去加载其依赖,但是json-taglib的jar包并没有在maven的中心仓库,因此我们要将jar包下载下来,然后再将其引入自己的本地仓库
具体做法是在命令行下进入jar包目录下,运行一下命令
mvn install:install-file -Dfile=json-taglib-0.4.1.jar -DgroupId=atg.taglib.json -DartifactId=json-taglib -Dversion=0.4.1 -Dpackaging=jar
添加成功后,会提示你, 之后我们就可以在pom之中引入依赖了.
<dependency>
<groupId>atg.taglib.json</groupId>
<artifactId>json-taglib</artifactId>
<version>0.4.1</version>
</dependency>
第二步是在jsp页面上加入如下声明,
<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>
然后JSON-taglib主要利用json:array, json:object和json:property来实现数据格式的转换.接下来我们就可以在jsp中用<json>标签了.
<json:object>
<json:array name="学员信息" var="user" items="${userList}">
<json:object>
<json:property name="id" value="${user.id}"/>
<json:property name="name" value="${user.name}"/>
<json:property name="number" value="${user.number}"/>
<json:property name="qq" value="${user.qq}"/>
<json:property name="type" value="${user.type}"/>
<json:property name="university" value="${user.university}"/>
<json:property name="time" value="${user.time}"/>
<json:property name="link" value="${user.daily_link}"/>
<json:property name="pledge" value="${user.pledge}"/>
<json:property name="senior" value="${user.senior}"/>
<json:property name="locality" value="${user.senior}"/>
</json:object>
</json:array>
</json:object>
控制器
@RequestMapping(value = "/json/students", method = RequestMethod.GET)
public String getAll(Model model) {
List<User> userList = userService.getAll();
logger.info("the students are::{}", userList.toString());
model.addAttribute("userList", userList);
return "jsonDemo1";
}
用postman测试接口,可以看到输出的是json格式的数据
对于json标签的使用,主要是对象嵌套数组,数组里嵌套对象的方式,通过嵌套标签的使用,我们可以组合出绝大部分的使用场景.
明天计划的事情:
完成深度思考和任务二
遇到的问题:
由于jsontaglib的资料较少,一开始看了半天完全不知道改怎么用;并且由于自己的疏忽,经常犯一些细节错误,导致卡很久,确实很不应该;
经过师兄点拨,了解到json的作用,当前端向我们发送请求后,我们可以向其返回简单易读的json数据,然后前端根据其解析器解析json.
收获:
学习了jsontaglib的使用
进度:任务二基本完成
任务开始时间:3.23
预计demo时间:4.3
是否延期:是
由于知识点接受较慢,延期两天,预计4.5完成
禅道地址:http://task.ptteng.com/zentao/project-task-562.html
评论