CN109766102A - 一种自动解析请求参数的匹配方法 - Google Patents
一种自动解析请求参数的匹配方法 Download PDFInfo
- Publication number
- CN109766102A CN109766102A CN201811647071.5A CN201811647071A CN109766102A CN 109766102 A CN109766102 A CN 109766102A CN 201811647071 A CN201811647071 A CN 201811647071A CN 109766102 A CN109766102 A CN 109766102A
- Authority
- CN
- China
- Prior art keywords
- json
- parameter
- parsing
- matching
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种自动解析请求参数的匹配方法,包括以下步骤:创建注解标识、创建解析模块和对JSON参数进行处理;方法从提高开发效率和准确性出发,将传入的一整个JSON串,按照开发接收参数的个数、名字、类型自动解析成多个入参,并和开发制定的入参进行匹配,自动赋值,从而保留了方法入参明确的特性,提高了方法的描述准确性,从而降低了开发因为不了解入参对象中实际使用的参数项导致开发错误和开发效率的降低;而且该方法避免了为了解析JSON对应的数据而编写各类对应的JavaBean,减少的编写代码量和不必要的类定义,占用内存空间;使得数据接收者更清晰的知道接收到的参数个数、含义,减少理解上的偏差,增加代码准确性和可读性。
Description
技术领域
本发明涉及数据解析技术领域,具体为一种自动解析请求参数的匹配方法。
背景技术
随着互联网和物联网的普及,各类基于http,https协议的交互系统越来越多,数据交互量也越来越大,采用JSON格式进行数据传输变成了一种普片现象,而传统的Java解析方式是对将JSON数据解析成一个JSON对象,哪怕是采用SpringMVC框架,也只能将整个RequestBody里的JSON数据解析成一个Java对象,没有一个方式可以将JSON的数据解析像传统的键值对传参那样将每一个数据项和入参对应;为此,我们提出一种自动解析请求参数的匹配方法。
发明内容
本发明的目的在于提供一种自动解析请求参数的匹配方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种自动解析请求参数的匹配方法,包括以下步骤:
S1:创建一个注解标识:JsonParam,用来标识出需要进行JSON数据匹配的参数名称;
S2:创建一个解析模块,解析模块实现原始JSON数据的解析和匹配,解析模块的实现步骤如下:
a: 判断HTTP或HTTPS的请求头的ContentType是application/json;
b:读取请求里的Body内容,获得JSON的数据字符串:json;
c: 将json解析成以属性名为key,属性值为Value的参数Map:paramMap;
d: 检查接收数据的方法入参的注解,如果有JsonParam注解,则获得该注解里的value值,即参数名:paramName和参数类型:paramType;
e:如果Setp4里的paramName和paramMap中的key匹配,则将paramMap中该key对应的value解析成参数类型为paramType的对象;
h:将Step5中获得的对象返回,即完成了JSON数据的对应解析匹配。
S3:将解析模块加入到通过重载Spring的HandlerMethod Argument ResolverComposite的resove Argument方法中,对实际请求的JSON参数进行处理。
与现有技术相比,本发明的有益效果是:该方法从提高开发效率和准确性出发,将传入的一整个JSON串,按照开发接收参数的个数、名字、类型自动解析成多个入参,并和开发制定的入参进行匹配,自动赋值,从而保留了方法入参明确的特性,提高了方法的描述准确性,从而降低了开发因为不了解入参对象中实际使用的参数项导致开发错误和开发效率的降低;而且该方法避免了为了解析JSON对应的数据而编写各类对应的JavaBean,减少的编写代码量和不必要的类定义,占用内存空间;使得数据接收者更清晰的知道接收到的参数个数、含义,减少理解上的偏差,增加代码准确性和可读性。
附图说明
图1为本发明自动解析请求参数的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种技术方案:一种自动解析请求参数的匹配方法,包括以下步骤:
S1:创建一个注解标识:JsonParam,用来标识出需要进行JSON数据匹配的参数名称;
S2:创建一个解析模块,解析模块实现原始JSON数据的解析和匹配,解析模块的实现步骤如下:
a: 判断HTTP或HTTPS的请求头的ContentType是application/json;
b:读取请求里的Body内容,获得JSON的数据字符串:json;
c: 将json解析成以属性名为key,属性值为Value的参数Map:paramMap;
d: 检查接收数据的方法入参的注解,如果有JsonParam注解,则获得该注解里的value值,即参数名:paramName和参数类型:paramType;
e:如果Setp4里的paramName和paramMap中的key匹配,则将paramMap中该key对应的value解析成参数类型为paramType的对象;
h:将Step5中获得的对象返回,即完成了JSON数据的对应解析匹配。
S3:将解析模块加入到通过重载Spring的HandlerMethod Argument ResolverComposite的resove Argument方法中,对实际请求的JSON参数进行处理。
以下表1为传统方法和本发明方法获得参数差异比较表:
该方法从提高开发效率和准确性出发,将传入的一整个JSON串,按照开发接收参数的个数、名字、类型自动解析成多个入参,并和开发制定的入参进行匹配,自动赋值,从而保留了方法入参明确的特性,提高了方法的描述准确性,从而降低了开发因为不了解入参对象中实际使用的参数项导致开发错误和开发效率的降低;而且该方法避免了为了解析JSON对应的数据而编写各类对应的JavaBean,减少的编写代码量和不必要的类定义,占用内存空间;使得数据接收者更清晰的知道接收到的参数个数、含义,减少理解上的偏差,增加代码准确性和可读性。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (1)
1.一种自动解析请求参数的匹配方法,其特征在于,包括以下步骤:
S1:创建一个注解标识:JsonParam,用来标识出需要进行JSON数据匹配的参数名称;
S2:创建一个解析模块,解析模块实现原始JSON数据的解析和匹配,解析模块的实现步骤如下:
a: 判断HTTP或HTTPS的请求头的ContentType是application/json;
b:读取请求里的Body内容,获得JSON的数据字符串:json;
c: 将json解析成以属性名为key,属性值为Value的参数Map:paramMap;
d: 检查接收数据的方法入参的注解,如果有JsonParam注解,则获得该注解里的value值,即参数名:paramName和参数类型:paramType;
e:如果Setp4里的paramName和paramMap中的key匹配,则将paramMap中该key对应的value解析成参数类型为paramType的对象;
h:将Step5中获得的对象返回,即完成了JSON数据的对应解析匹配;
S3:将解析模块加入到通过重载Spring的HandlerMethod Argument ResolverComposite的resove Argument方法中,对实际请求的JSON参数进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811647071.5A CN109766102A (zh) | 2018-12-30 | 2018-12-30 | 一种自动解析请求参数的匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811647071.5A CN109766102A (zh) | 2018-12-30 | 2018-12-30 | 一种自动解析请求参数的匹配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766102A true CN109766102A (zh) | 2019-05-17 |
Family
ID=66453312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811647071.5A Pending CN109766102A (zh) | 2018-12-30 | 2018-12-30 | 一种自动解析请求参数的匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766102A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181804A (zh) * | 2020-08-31 | 2021-01-05 | 五八到家有限公司 | 一种参数校验方法、设备以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020064A (zh) * | 2011-09-20 | 2013-04-03 | 佳都新太科技股份有限公司 | 一种通过注解方式生成查询条件的方法和配置 |
CN104199725A (zh) * | 2014-09-27 | 2014-12-10 | 上海瀚之友信息技术服务有限公司 | 一种服务接口数据模拟方法和系统 |
CN105955790A (zh) * | 2016-05-20 | 2016-09-21 | 广州华多网络科技有限公司 | 数据处理方法及装置 |
-
2018
- 2018-12-30 CN CN201811647071.5A patent/CN109766102A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020064A (zh) * | 2011-09-20 | 2013-04-03 | 佳都新太科技股份有限公司 | 一种通过注解方式生成查询条件的方法和配置 |
CN104199725A (zh) * | 2014-09-27 | 2014-12-10 | 上海瀚之友信息技术服务有限公司 | 一种服务接口数据模拟方法和系统 |
CN105955790A (zh) * | 2016-05-20 | 2016-09-21 | 广州华多网络科技有限公司 | 数据处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
木叶_之荣: "SpringMVC之分析HandlerMethodArgumentResolver请求对应处理器方法参数的解析过程", 《HTTPS://DEVELOPER.ALIYUN.COM/ARTICLE/348569》 * |
飞火龙在天: "json参数的接口基本开发(@ResponseBody和@requestBody的使用)", 《HTTPS://BLOG.CSDN.NET/QQ_23145857/ARTICLE/DETAILS/84107394》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181804A (zh) * | 2020-08-31 | 2021-01-05 | 五八到家有限公司 | 一种参数校验方法、设备以及存储介质 |
CN112181804B (zh) * | 2020-08-31 | 2023-09-08 | 五八到家有限公司 | 一种参数校验方法、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733689B (zh) | 一种json文本的比对方法和装置 | |
US20140122535A1 (en) | Extracting Semantic Relationships from Table Structures in Electronic Documents | |
CN109670081B (zh) | 业务请求处理的方法及装置 | |
CN106341444B (zh) | 数据访问方法和装置 | |
CN108564339A (zh) | 一种账户管理方法、装置、终端设备及存储介质 | |
CN103428261A (zh) | 通过硬件辅助处理http报头的方法 | |
CN104391934A (zh) | 数据校验方法和装置 | |
JP2020187733A (ja) | アプリケーション・プログラミング・インターフェースのドキュメンテーションの注釈付け | |
CN113051285A (zh) | Sql语句的转换方法、系统、设备及存储介质 | |
CN106970929A (zh) | 数据导入方法及装置 | |
CN108664665A (zh) | 数据格式转化方法、装置、设备及可读存储介质 | |
CN104123125A (zh) | 网页资源的获取方法及装置 | |
CN113204555B (zh) | 数据表处理方法、装置、电子设备和存储介质 | |
CN109766102A (zh) | 一种自动解析请求参数的匹配方法 | |
CN107040613A (zh) | 一种报文传输方法及系统 | |
CN109726313A (zh) | 操作数据库的方法及装置 | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US11100280B2 (en) | Test case consolidator | |
CN105302728B (zh) | Sap接口的测试方法和装置 | |
CN114968917A (zh) | 一种文件数据快速导入方法及装置 | |
CN108052590B (zh) | 一种结构化数据的动态使用方法及系统 | |
US10817661B2 (en) | System architecture framework | |
CN104133681B (zh) | 一种ambari‑web端架构分析方法 | |
CN111813999A (zh) | 一种提高以太坊智能合约字段扩展性的方法 | |
CN104318019B (zh) | 一种基于耦合关系的飞行器系统分析系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190517 |
|
RJ01 | Rejection of invention patent application after publication |