发表于: 2018-04-04 22:59:13

1 576


今天完成的事情:

学习了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



返回列表 返回列表
评论

    分享到