统一的Json组件和csv下载组件

简介:

统一的Json组件和csv下载组件
Json组件
目标和用途

规范Json接口格式
Controller中一律返回Java object,组件将自动转换数据格式,满足Json接口格式
统一处理Json接口中出现的异常,controller中不再需要try-catch.Spring只有针对页面请求的SimpleMappingExceptionResolver异常解决方案,并没有针对使用@ResponseBody的方法异常处理
如何使用

在Spring配置文件中增加:
不需要配置
在需要返回Json的Controller的方法上标注:@JsonResponseBody 注解,默认是V2版本。可以参考TestController.java文件
示例

示例1

@RequestMapping(value = "/testJsonResponceBodyV2ReturnMap")
@JsonResponseBody(version = JsonResponseBody.Version.V2)
public Map testJsonResponceBodyV2ReturnMap() {

   HashMap<Object, Object> hashMap = Maps.newHashMap();
   hashMap.put("key", "value");
   return hashMap;

}
返回:

{

"code":0,
"msg":"",
"data":{
    "key":"value"
}

}
示例2

@RequestMapping(value = "/testJsonResponceBodyV1WithException")
@JsonResponseBody(version = JsonResponseBody.Version.V1)
public List<String> testJsonResponceBodyV1WithException() {
    throw new RuntimeException("some exception");
}

返回:

{

"ret":false,
"msg":"some exception"

}
更多示例请参考:TestController.java

CSV组件
目标和用途

提供一个统一的CSV文件下载功能,各个系统就不需要重复编写了
简化「cvs下载功能」的实现
如何使用

假设你的业务model为Payload,有可能你最终需要的csv的列和业务model Payload的属性不完全一致,
因此你需要创建一个SomeCSVPayload(名字随意)来实现BaseCSVPayload接口,并制定csv的列头等信息
在对应的Controller方法上增加@CSVResponceBody(fileName = "output", payloadClass = SomeCSVPayload.class),如下:

@RequestMapping(value = "/testCSVResponceBody")
@CSVResponceBody(fileName = "output", payloadClass = SomeCSVPayload.class)

public SomeCSVPayload testCSVResponceBody() {

   return new SomeCSVPayload();

}
示例使用请查看TestController.java中的testCSVResponceBody方法

Excel组件
暂时没打算支持Excel下载,因为Excel需要区分版本,不同版本的限制也有些不同,而CSV比较通用,因此目前只支持csv
本文转自被遗忘的博客博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/4933881.html,如需转载请自行联系原作者

相关文章
|
3月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
31 0
|
4月前
|
JSON JavaScript 前端开发
前端 ex2json 用于 vue/react/js 将 xls、xlsx、csv 文件转成 json 数组
前端 ex2json 用于 vue/react/js 将 xls、xlsx、csv 文件转成 json 数组
94 0
|
5月前
|
SQL JSON 数据格式
获取中国【省、市、区县、乡镇街道】json,csv,sql数据
获取中国【省、市、区县、乡镇街道】json,csv,sql数据
222 0
|
4月前
|
存储 JSON 关系型数据库
Pandas载入txt、csv、Excel、JSON、数据库文件讲解及实战(超详细 附源码)
Pandas载入txt、csv、Excel、JSON、数据库文件讲解及实战(超详细 附源码)
66 0
|
4天前
|
JSON 运维 Kubernetes
云效产品使用报错问题之流水线中配置了AppStack,构建时下载的制品内容为json字符串,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
3月前
|
存储 JSON API
Python 自动化指南(繁琐工作自动化)第二版:十六、使用 CSV 文件和 JSON 数据
Python 自动化指南(繁琐工作自动化)第二版:十六、使用 CSV 文件和 JSON 数据
66 1
|
4月前
|
存储 JSON 数据挖掘
CSV和JSON格式的数据在python上的处理
CSV和JSON数据类型都是都是常见的两种在python中的数据分析类型,这里我有两个入门项目详细讲解这两种数据的处理。
|
4月前
|
存储 JSON 定位技术
Python提取JSON数据中的键值对并保存为.csv文件
Python提取JSON数据中的键值对并保存为.csv文件
|
4月前
|
存储 JSON 定位技术
Python提取JSON文件中的指定数据并保存在CSV或Excel表格文件内
Python提取JSON文件中的指定数据并保存在CSV或Excel表格文件内
|
5月前
|
SQL JSON 数据格式
获取【省、市、区县、乡镇街道】json,csv,sql数据
获取【省、市、区县、乡镇街道】json,csv,sql数据
80 1