发表于: 2018-04-08 21:20:02

1 593


今天完成的事情:

1.背景介绍

json简单介绍

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。

它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

2.知识剖析

json 语法:

在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:

对象表示为键值对

数据由逗号分隔

花括号保存对象

方括号保存数组

3.常见问题。

JSON 与 JS 对象的关系,怎么生成输出json?

4.解决方案

json对象一般使用工具类生成,比如jackson或者阿里的fastjson;然后我们给前端的实际上都是json字符串,前端主要prase或者框架指定参数类型编译后才变成了json对象,才能用关系符“.”拿出里面的东西。发送json的方式我目前接触到的有三种:1.controller里面@ResponeBody;2.返回jsp并用hsontaglib提取;3.PrintWriter输出(通常用于在过滤器中输出ajax请求回应)

5.编码实战

1.controller里面@ResponeBody:

@RequestBody

作用:

      i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

      ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

使用时机:

A) GET、POST方式提时, 根据request header Content-Type的值来判断:

    application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);

    multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);

    其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

B) PUT方式提交时, 根据request header Content-Type的值来判断:

    application/x-www-form-urlencoded, 必须;

    multipart/form-data, 不能处理;

    其他格式, 必须;

说明:request的body部分的数据编码格式由header部分的Content-Type指定;

2.jsontaglib

主要一个很大的优势就是可以不在controller层,而是在jsp中修改dto对象的结构,而且能统一格式

举个例子,我是怎么统一返回异常信息和code码给前端的:

这里的exception其实是exception.jsp这个文件:

MVC配置

目录

3.过滤器里面输出json字符串:

工具类

shiro的过滤器

6.扩展思考

检验dto对象并返回json消息结果

明天计划的事情:正式开始复盘


遇到的问题:null


收获:总结


返回列表 返回列表
评论

    分享到