java json注解_处理json参数的注解,更方便的获取请求参数

@JSONParam需求描述

当请求的content-type为application/json时实现一下功能:

对请求体中的参数做required判断

解析参数为指定类型

提供默认值

为什么做@JSONParam(瞎掰)

自Java5.0版本引入注解之后,各种注解层出不穷。注解的使用让代码简洁优雅,更重要的是,提高代码重用,达到解耦的目的,利于代码的维护和修改。

对于Web后端框架来说,Spring 相关组件提供了大量注解,提高了开发速度,就拿@RequestParam来说,放在接口方法的参数前,通过几个属性,就能减少很多的参数校验和类型转换操作。

但是@RequestParam只应用于content-type为application/x-www-form-urlencoded(传统表单方式)的场景,并不适用application/json情况。这时大多会使用@RequestBody代替@RequestParam来获取一个JSON对象(或其他自定义对象),不过对这个JSON对象中的属性和值仍是无感,所以必须在方法体中对这个JSON对象中的属性进行一系列判断。在写这一系列判断时,真是万分感念@RequestParam的贴心与勤劳。

忍无可忍之下,决定自己动手写一个能够在application/json情况实现@RequestParam类似功能的注解@JSONParam,代码已经提交到github : https://github.com/championjing/spring-annotation-extension 查看具体实现代码

不足之处

每个参数的处理都会请求体中的输入流转为字符串,感觉会有更好的处理方式,但还没想好;

想要的改进

name属性可以接受数组,required、defaultValue也接受数组,并与name对应,当返回值类型为JSON时,对这些内容进行一一判断和赋值操作,可避免上面提到的转字符串问题;

使用方法

在pom中添加maven依赖;

com.rongzhiweilai.extension

spring-annotation-extension

0.1.0-releases

Tip: 发布时版本号写的略显随意,实例项目中也需要引入该版本

将类WebListenerConfiguration加入Spring容器;

@SpringBootApplication

@Import({com.rongzhiweilai.extension.config.WebListenerConfiguration.class})

public class DemoApplication {

public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

}

}

希望和大家交流意见,或是推荐已有的实现方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值