CN110554857B - JavaBean生成方法、装置、系统及可读存储介质 - Google Patents

JavaBean生成方法、装置、系统及可读存储介质 Download PDF

Info

Publication number
CN110554857B
CN110554857B CN201810538944.2A CN201810538944A CN110554857B CN 110554857 B CN110554857 B CN 110554857B CN 201810538944 A CN201810538944 A CN 201810538944A CN 110554857 B CN110554857 B CN 110554857B
Authority
CN
China
Prior art keywords
builder
moshi
javabean
parameter
target
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.)
Active
Application number
CN201810538944.2A
Other languages
English (en)
Other versions
CN110554857A (zh
Inventor
拓小明
吴鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mashang Xiaofei Finance Co Ltd
Original Assignee
Mashang Xiaofei Finance Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mashang Xiaofei Finance Co Ltd filed Critical Mashang Xiaofei Finance Co Ltd
Priority to CN201810538944.2A priority Critical patent/CN110554857B/zh
Publication of CN110554857A publication Critical patent/CN110554857A/zh
Application granted granted Critical
Publication of CN110554857B publication Critical patent/CN110554857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种基于Moshi的JavaBean生成方法,涉及电子技术领域,包括:获取根据解析对象设置的接口地址;根据参数特征爬取接口地址对应数据中的目标参数;利用Moshi和Builder模式对目标参数进行构造,得到JavaBean对象文件。该方法能够实现对接口文档数据的自动筛选,提升开发效率。本申请还公开了一种基于Moshi的JavaBean生成装置、系统及一种计算机可读存储介质,具有上述有益效果。

Description

JavaBean生成方法、装置、系统及可读存储介质
技术领域
本申请涉及电子技术领域,特别涉及一种基于Moshi的JavaBean生成方法、装置、系统及一种计算机可读存储介质。
背景技术
在接口开发中,客户端与服务器端需要通过json进行数据交互,服务器端将特定的数据类型转换为json字符串,然后客户端再将json字符串转换成原来的类型。目前,在发送网络请求或响应请求时,为了方便管理数据,一般都是将json数据封装成JavaBean对象来处理。进行数据传输前需要将其封装为JavaBean对象,所以将json解析为JavaBean对象是跨平台数据格式转换的桥梁。
现有技术中JavaBean的生成是基于json插件完成的,用户需要大致筛选出需要进行格式转换的数据,将其粘贴到插件后再挑选出需要进行解析的字段,通过插件进行格式转换,如利用GsonFormat插件进行JavaBean转换。
在规范化的开发中,根据开发文档来来开发各个接口需要创建各种请求和响应的Json解析的Java对象,而这种操作往往是机械的、重复的且没有意义的。从种类繁多且总量庞大的数据中筛选出需要的参数(比如请求参数或者返回参数)十分麻烦,开发人员需手动逐个对字段进行挑选,再一个一个的输入各个字段,过程机械重复,且容易输错。而且很多参数的数据格式不规范,在不规范的数据格式下普通插件进行数据转换错误率较高,很难实现规范化统一的参数提取,而且生成的JavaBean对象还会由于构造过程被分到几个调用中存在一致性问题。
因此,如何实现对接口文档数据的自动筛选,提升开发效率,是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的是提供一种基于Moshi的JavaBean生成方法,该方法能够对接口文档数据进行自动筛选,提升开发效率;本申请的另一目的是提供一种基于Moshi的JavaBean生成装置、系统及一种计算机可读存储介质,具有上述有益效果。
为解决上述技术问题,本申请提供一种基于Moshi的JavaBean生成方法,包括:
获取根据解析对象设置的接口地址;
根据参数特征爬取所述接口地址对应数据中的目标参数;
利用Moshi和Builder模式对所述目标参数进行构造,得到JavaBean对象文件。
可选地,所述根据参数特征爬取所述接口地址对应数据中的目标参数包括:
解析所述接口地址对应的页面数据;
根据参数特征筛选出所述页面数据中的目标节点;
读取所述目标节点的数据,得到目标参数。
可选地,所述根据参数特征筛选出所述页面数据中的目标节点包括:
筛选出所述页面数据中的req节点和/或resp节点。
可选地,所述获取根据解析对象设置的接口地址包括:
接收进行解析的接口名称;
查找所述接口名称对应的接口地址。
可选地,所述利用Moshi和Builder模式对所述目标参数进行构造,得到JavaBean对象文件包括:
调用参数输入脚本将所述目标参数输入至基于Moshi的Builder模型,得到JavaBean对象文件。
本申请公开一种基于Moshi的JavaBean生成装置,包括:
地址获取单元,用于获取根据解析对象设置的接口地址;
参数爬取单元,用于根据参数特征爬取所述接口地址对应数据中的目标参数;
对象构造单元,用于利用Moshi和Builder模式对所述目标参数进行构造,得到JavaBean对象文件。
可选地,所述参数爬取单元包括:
数据解析子单元,用于解析所述接口地址对应的页面数据;
节点筛选子单元,用于根据参数特征筛选出所述页面数据中的目标节点;
数据读取子单元,用于读取所述目标节点的数据,得到目标参数。
本申请公开一种基于Moshi的JavaBean生成系统,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现所述基于Moshi的JavaBean生成方法的步骤。可选地,所述存储器存储有批处理工具的程序,所述批处理工具中存储有所述基于Moshi的JavaBean生成方法的步骤的程序。
本申请公开一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于Moshi的JavaBean生成方法的步骤。
本申请所提供的基于Moshi的JavaBean生成方法通过接收根据解析对象设置的接口地址,接口地址指向需要进行解析的接口文档,根据参数特征爬取所述接口地址对应数据中的预设参数,参数特征即预先设置的需要进行参数转换的参数的共有特征,根据预设的参数特征爬取接口文档中数据,可以实现对需要进行转换的参数的自动提取;利用Moshi和Builder模式对目标参数进行构造,Builder模型为调用Builder模式的模型,其内部的各个属性的值不能修改,Builder模型可以解决在并发访问中容易出现访问的数据不一致问题;通过Moshi格式对目标参数进行构造可以对不符合一般数据格式的数据进行转义,使其符合规范,提高构造的准确率,通过本申请提供的生成方法无需每次手动输入大量代码,只需输入接口地址即可实现目标参数的自动提取,大大提升了开发的效率。
本申请还公开了一种基于Moshi的JavaBean生成装置、系统及一种计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的基于Moshi的JavaBean生成方法的流程图;
图2为本申请实施例提供的基于Moshi的JavaBean生成装置的结构框图;
图3为本申请实施例提供的基于Moshi的JavaBean生成系统的结构框图。
具体实施方式
本申请的核心是提供一种基于Moshi的JavaBean生成方法,该方法可以对接口文档数据进行自动筛选,提升开发效率;本申请的另一核心是提供一种基于Moshi的JavaBean生成装置、系统及一种计算机可读存储介质,具有上述有益效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本实施例提供的基于Moshi的JavaBean生成方法的流程图;该方法可以包括:
步骤s100、获取根据解析对象设置的接口地址。
接口地址的获取可以通过用户直接输入需要解析的对象对应的接口地址,也可以通过接收需要解析的对象名称,通过预先存储的解析对象名称与地址的对应列表进行接口地址的查询。由于接口的地址一般较为复杂,为减少用户输错的概率,减少无用功,优选地,获取根据解析对象设置的接口地址可以包括:接收进行解析的接口名称;查找接口名称对应的接口地址。
步骤s101、根据参数特征爬取接口地址对应数据中的目标参数。
目标参数指需要进行转换的参数类型,可以包括比如请求参数、响应参数以及类型参数等,在此对目标参数的具体类型不做限定。在进行爬取前需确定目标参数,根据目标参数设置参数特征的爬取规则,根据确定的爬取规则对接口文档中的数据进行自动提取,爬取规则可以根据语句特点、数据类型特点或者节点特点等特征信息确定,爬取规则也可以根据目标参数的类型进行设定,例如当设定的目标参数为数据类型时,爬取规则可以设定为筛选出表示数据类型的字段;当设定的目标参数为请求参数时,爬取规则可以设定为筛选出请求参数对应的节点等。
由于需要进行转换的数据大多以节点形式构成,具有比较明显的节点特征,优选地,可以通过节点特征进行参数的爬取,则根据参数特征爬取接口地址对应数据中的目标参数可以包括以下步骤:
步骤一:解析接口地址对应的页面数据;
步骤二:根据参数特征筛选出页面数据中的目标节点;
步骤三:读取目标节点的数据,得到目标参数。
由于大多数情况下目标参数为响应参数以及请求参数,通过对响应参数以及请求参数进行解析可以实现对接口文档中重要信息的分析。
在此以获取的目标参数为响应参数以及请求参数为例通过节点特征对某网站进行爬取的过程进行介绍。通过对某网站的页面数据进行分析得到该页面数据通过req节点表示请求参数,resp节点表示响应参数,通过筛选页面数据中的req节点以及resp节点并获取节点数据即可完成对请求参数以及响应参数的爬取。
另外,对目标参数(比如请求参数以及响应参数)的提取还可以通过内容筛选,如下所示为某网站中页面数据中的一段:
“<captain>请求参数</captain>
<thead>
<tr>
<th>参数名</th>”
其中,该网站的页面数据中有“请求参数”这样的字眼,对该网站中目标参数的筛选可以通过筛选出内容中“请求参数”预设范围内的数据作为请求参数。
当然,在此仅以某网站中的页面数据进行介绍,不同网站结构可能不同,不同网站的节点筛选以及内容筛选需根据网页结构进行设定,其它筛选方式均可参照上述介绍。
步骤s102、利用Moshi和Builder模式对目标参数进行构造,得到JavaBean对象文件。
接口文档数据中返回的某些字段可能并不符合Android开发规范,如下划线或者空格,在做Json解析的时候就要进行必要的转义,使其符合规范,而Moshi格式可以对不符合一般数据格式的数据进行转义,很容易地解析Json成Java对象,使其符合规范,提高构造的准确率。Moshi由于其使用注解、支持类型转换、跳过某个字段、兼容Json类和Java类属性名不一致等特点,在开发中被广泛使用。
由于JavaBean的构建过程需要多参数构建,而当一个类的参数多的情况下,使用重叠构造器模式客户端代码会很难编写,并且可读性差,而使用JavaBean模式时构造过程被分到几个调用中,在构造JavaBean可能处于不一致的状态,类无法仅仅通过检验构造器参数的有效性来保证一致性,而且JavaBean模式阻止了把类做成不可变的可能,避免了可能出现的线程安全问题。本实施例采用Builder模式构造对象,使用Builder以及moshi模式生成的JavaBean对象的过程中,不可以在修改其内部的各个属性的值,可以保证访问的数据的一致性。而且Builder模式既能保证像重叠构造器那样的安全,也能实现JavaBean模式那样的可读性。
基于Builder以及moshi模式对由目标参数进行设置的过程可以通过用户将获取的目标参数输入模型中,可以调用输入命令或者输入脚本将目标参数输入模型,也可以调用其他数据传输装置进行数据传输,在此不做限定。
具体地,基于Builder以及moshi模式的构造过程可以先将获取到的字段基于moshi模式进行格式的编排后,根据编排后的字段进行静态内部类的构造,将静态内部类Builder作为参数传递给私有构造方法,通过静态内部类的公有方法来调用静态内部类的私有方法,生成静态内部类Builder实例,再通过调用Builder类的方法来初始化各个成员变量,将Builder中的各个变量进行赋值,生成Message,即得到JavaBean对象。基于Builder以及moshi模式的构造过程兼容了moshi的可转义特性,以及Builder的一致性,从而使得生成的JavaBean对象准确率高、可读性强。上述构建过程中采用Moshi解析使得开发更加规范,采用Builder设计模式将类的构建和表示进行分离,基于Builder模式对由目标参数构造的Builder对象通过Moshi格式进行设置,可以方便灵活构建不同参数的对象,流式编程使代码可读性更强。
本实施例提供的JavaBean生成方法通过接口地址的获取命令自动获取接口地址,通过爬取命令实现目标参数的自动提取,通过脚本中命令的控制大大提升了接口开发效率。
基于上述实施例,利用Moshi和Builder模式对目标参数进行构造的过程不做限定。为实现整个Java对象转换过程的自动化,优选地,基于Builder模式对由目标参数构造的Builder对象通过Moshi格式进行设置具体可以为:调用参数输入脚本将目标参数输入至基于Moshi以及Builder模型,得到JavaBean对象文件。
上述实施例中对Builder以及moshi模式的构造方法以及基于Builder以及moshi模式对目标参数进行构造的过程不做限定,为加深对模式构造过程以及Javabean对象构造过程的理解,在此以需要解析的字段包括:"id"、"title"、"content"、"push_time"、"open_type"、"url_cmd"、"imgUrl"、"productCode"、"reserve"、"beginTime"、"endTime"、"extend"、"extend_msgType"为例进行介绍。
Builder以及moshi模式的构造方法具体步骤可以包括:
1)、基于moshi模式对获取到的字段进行编排。
例如,当获取到的字段为push_time时,以如下的格式进行编排:@Json(name="push_time")public final long pushTime;
基于moshi模式对获取到的字段进行编排可以对不符合开发标准的字段进行必要的转义,使其符合规范,提高构造的准确率。
2)、基于编排后的字段生成Builder内部类。
将编排后的字段作为参数进行内部类的构造,具体地,生成builder内部类的过程可以由以下代码实现:
Figure BDA0001678829300000071
Figure BDA0001678829300000081
Builder内部类声明私有构造函数、公有的构造函数调用方法、各个字段和各个字段的赋值方法,比如:
Figure BDA0001678829300000082
Figure BDA0001678829300000091
基于内部类可以进行私有以及公有函数的构造。
3)、基于内部类生成javabean的私有构造方法。
将静态内部类Builder作为参数传递给私有构造方法,通过传递过来的参数再对私有类的内部成员进行赋值操作。使用builder模式时,通过将各个成员都声明为final类型,从而使得各个成员的赋值都必须通过构造函数来赋值,而且final的值一旦被初始化就不允许在进行赋值操作,可以保证一致性。
具体地,私有构造方法具体可以为:
private Message(Builder builder){
id=builder.id;
title=builder.title;
content=builder.content;
push_time=builder.push_time;
open_type=builder.open_type;
url_cmd=builder.url_cmd;
imageUrl=builder.imageUrl;
productCode=builder.productCode;
reserve=builder.reserve;
beginTime=builder.beginTime;
endTime=builder.endTime;
extend=builder.extend;
extend_msgType=builder.extend_msgType;
}
4)、基于内部类在Builder内部生成javabean公有构造方法。
公有构造方法的生成方法具体可以为:
public Message build(){
return new Message(this);
}
基于Builder以及moshi模式对目标参数进行构造过程具体可以为:
调用类进行构造:
Message msg=Message.newBuilder().withId(“xxx”).build();
通过静态内部类的公有方法Message.newBuilder()来调用静态内部类的私有方法,从而生成静态内部类Builder实例,再通过调用Builder类的方法来初始化各个成员变量(Builder的成员变量),如withId(“xxx”)。调用withId(“xxx”)返回Builder的实例,从而可以实现链式调用,即builder.withId(“xxx”).withTitle(“xxx”);最后再调用Builder的方法build()。通过build方法,调用Message(Builder build)的私有构造方法,将builder中的各个变量赋值给Message,对于生成Message实例,由于其成员变量均为final,所有只能读取,不能赋值,从而保证了实例的不可变性。利用Message.newBuilder().withId(“xxx”).build()可以生成可以进行传递的Message的实例,即得到JavaBean对象。
在此仅以上述情况为例进行介绍,其它基于Builder以及moshi模式对由目标参数进行设置的过程均可参照本实施例的介绍。
为便于对整体流程的理解,在此以批处理程序调用Python脚本对对目标网页中数据自动生成JavaBean对象文件的流程进行介绍。
批处理程序接收用户输入的网页地址,调用Python脚本中的爬取指令爬取网络数据,通过解析网页内容,读取需要的各个参数,接口网页文档中包括请求参数和响应参数。爬取数据的时候,通过分析网页的组成,找到对应的req或者resp节点,然后再分别读取节点中的数据,例如:读取<td>mobile</td>。
批处理程序对读取到的各个参数,基于Moshi和Builder模式生成的模型,生成JavaBean对象文件,即批处理程序使用python脚本将读取到的数据按照Moshi和Builder模式即可完成JavaBean对象文件的生成,具体的,应用上述实施例生成的JavaBean对象如下所示:
Figure BDA0001678829300000111
上述实施例中通过批处理工具控制整个文件生成流程,完全脱离了普通的插件例如Android studio工具,将网页与解析生成脚本关联,通过批处理工具对JavaBean对象使用Moshi和Builder模式进行管理,仅需修改脚本中的开发文档的接口地址Url网址即可通过Python自动生成基于Moshi的请求和响应的Json解析的JavaBean对象,从而大大提高工作效率。
其中,批处理工具也可以由其它工具替换实现,可以实现上述控制功能即可。Python脚本也可以替换为其它语言形式的脚本,比如Java脚本,在此对脚本的语言类型不做限定。此外,批处理工具也可以理解为实现本发明方案的一应用程序或者软件系统。
请参考图2,图2为本实施例提供的基于Moshi的JavaBean生成装置的结构框图;该装置可以包括:地址获取单元200、参数爬取单元201以及对象构造单元202。
其中,地址获取单元200主要用于获取根据解析对象设置的接口地址。
参数爬取单元201主要用于根据参数特征爬取接口地址对应数据中的目标参数。
对象构造单元202主要用于利用Moshi和Builder模式对目标参数进行构造,得到JavaBean对象文件。
具体地,参数爬取单元201可以进一步包括解析子单元、筛选子单元以及读取子单元。
其中,解析子单元用于解析接口地址对应的页面数据;
筛选子单元用于根据所述页面数据中的节点特征筛选出所述页面数据中目标节点。
读取子单元用于读取目标节点的数据,得到目标参数。
可选地,地址获取单元200可以进一步包括:接收子单元以及查找子单元,其中,接收子单元用于接收进行解析的接口名称;查找子单元用于查找接口名称对应的接口地址。
可选地,对象构造单元202具体可以用于调用参数输入脚本将目标参数输入至基于Moshi和Builder的模型,得到JavaBean对象文件。
请参考图3,图3为本实施例提供的基于Moshi的JavaBean生成系统的结构框图;该系统可以包括:存储器300以及处理器301。
其中,存储器300主要用于存储程序。
处理器301主要用于执行存储器300中存储的程序时实现所述基于Moshi的JavaBean生成方法的步骤。具体地,处理器301可以实现获取根据解析对象设置的接口地址;根据参数特征爬取接口地址对应数据中的目标参数;利用Moshi和Builder模式对目标参数进行构造,得到JavaBean对象文件。
可选地,存储器300具体可以存储有批处理工具的程序,批处理工具中存储有实现基于Moshi的JavaBean生成方法的步骤的程序。批处理工具是将批处理程序封成为的一个bat文件,该文件实则为命令的组合(如打开网页,生成文件等),根据这些命令,通过批处理程序对整个解析生成过程进行控制,可以实现高效的JavaBean自动创建。
可选地,存储器301还可以存储有用于执行解析接口地址对应的页面数据;根据参数特征筛选出页面数据中的目标节点;读取目标节点的数据,得到目标参数的程序。
其中,根据参数特征筛选出页面数据中的目标节点具体可以为:
根据页面数据中的节点特征筛选出页面数据中目标节点。
可选地,存储器301还可以存储有用于执行接收进行解析的接口名称;查找接口名称对应的接口地址的程序。
本实施例提供的基于Moshi的JavaBean生成系统无需每次都手动创建一个JavaBean对象,以及手动输入一个请求或响应字段,可以实现自动化JavaBean对象的生成。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现任一项基于Moshi的JavaBean生成方法的步骤。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请所提供的基于Moshi的JavaBean生成方法、装置、系统及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种基于Moshi的JavaBean生成方法,其特征在于,包括:
获取根据解析对象设置的接口地址;
根据参数特征爬取所述接口地址对应数据中的目标参数;
利用Moshi和Builder模式对所述目标参数进行构造,得到JavaBean对象文件,具体包括:基于Moshi模式对获取到的目标参数进行编排;基于编排后的目标参数生成Builder内部类;
具体生成Builder内部类的过程包括:通过静态内部类的公有方法来调用静态内部类的私有方法,生成静态内部类Builder实例;再通过调用Builder类的方法来初始化各个Builder的成员变量;调用所述Builder的成员变量返回所述Builder的实例;再通过调用所述Builder类的方法,将builder中的各个变量赋值给Message,生成Message实例,得到JavaBean对象。
2.如权利要求1所述的基于Moshi的JavaBean生成方法,其特征在于,所述根据参数特征爬取所述接口地址对应数据中的目标参数包括:
解析所述接口地址对应的页面数据;
根据参数特征筛选出所述页面数据中的目标节点;
读取所述目标节点的数据,得到目标参数。
3.如权利要求2所述的基于Moshi的JavaBean生成方法,其特征在于,所述根据参数特征筛选出所述页面数据中的目标节点包括:
根据所述页面数据中的节点特征筛选出所述页面数据中目标节点。
4.如权利要求1所述的基于Moshi的JavaBean生成方法,其特征在于,所述获取根据解析对象设置的接口地址包括:
接收进行解析的接口名称;
查找所述接口名称对应的接口地址。
5.如权利要求1至4任一项所述的基于Moshi的JavaBean生成方法,其特征在于,所述利用Moshi和Builder模式对所述目标参数进行构造包括:
调用参数输入脚本将所述目标参数输入至基于Moshi的Builder模型,得到JavaBean对象文件。
6.一种基于Moshi的JavaBean生成装置,其特征在于,包括:
地址获取单元,用于获取根据解析对象设置的接口地址;
参数爬取单元,用于根据参数特征爬取所述接口地址对应数据中的目标参数;
对象构造单元,用于利用Moshi和Builder模式对所述目标参数进行构造,得到JavaBean对象文件,具体用于基于Moshi模式对获取到的目标参数进行编排;基于编排后的目标参数生成Builder内部类;其中,具体生成Builder内部类的过程包括:通过静态内部类的公有方法来调用静态内部类的私有方法,生成静态内部类Builder实例;再通过调用Builder类的方法来初始化各个Builder的成员变量;调用所述Builder的成员变量返回所述Builder的实例;再通过调用所述Builder类的方法,将builder中的各个变量赋值给Message,生成Message实例,得到JavaBean对象。
7.如权利要求6所述的基于Moshi的JavaBean生成装置,其特征在于,所述参数爬取单元包括:
数据解析子单元,用于解析所述接口地址对应的页面数据;
节点筛选子单元,用于根据参数特征筛选出所述页面数据中的目标节点;
数据读取子单元,用于读取所述目标节点的数据,得到目标参数。
8.一种基于Moshi的JavaBean生成系统,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现如权利要求1至5任一项所述基于Moshi的JavaBean生成方法的步骤。
9.如权利要求8所述的基于Moshi的JavaBean生成系统,其特征在于,所述存储器存储有批处理工具的程序,所述批处理工具中存储有实现1至5任一项所述基于Moshi的JavaBean生成方法的步骤的程序。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述基于Moshi的JavaBean生成方法的步骤。
CN201810538944.2A 2018-05-30 2018-05-30 JavaBean生成方法、装置、系统及可读存储介质 Active CN110554857B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810538944.2A CN110554857B (zh) 2018-05-30 2018-05-30 JavaBean生成方法、装置、系统及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810538944.2A CN110554857B (zh) 2018-05-30 2018-05-30 JavaBean生成方法、装置、系统及可读存储介质

Publications (2)

Publication Number Publication Date
CN110554857A CN110554857A (zh) 2019-12-10
CN110554857B true CN110554857B (zh) 2021-06-22

Family

ID=68734095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810538944.2A Active CN110554857B (zh) 2018-05-30 2018-05-30 JavaBean生成方法、装置、系统及可读存储介质

Country Status (1)

Country Link
CN (1) CN110554857B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111080420A (zh) * 2019-12-30 2020-04-28 广州骏伯网络科技有限公司 一种实现多供应商话费充值匹配的方法、系统及存储介质
CN111736842B (zh) * 2020-05-28 2022-11-11 苏州浪潮智能科技有限公司 一种实现JSON快速转化为JavaBean方法、装置
CN114637497B (zh) * 2022-05-19 2022-09-16 佛山众陶联供应链服务有限公司 一种接口序列化响应字段的方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002031651A1 (en) * 2000-10-11 2002-04-18 Bea Systems, Inc. Method for developing business components
CN101697119A (zh) * 2009-10-12 2010-04-21 南京联创科技集团股份有限公司 基于JavaBean类导入格式取代传统URL访问地址的实现方法
CN102111282A (zh) * 2009-12-24 2011-06-29 上海杉达学院 一种基于电信业务的信息管理系统架构及其构建方法
CN103699386A (zh) * 2013-12-27 2014-04-02 云南电网公司玉溪供电局 一种基于osgi的通用数据转换引擎系统
CN105279032A (zh) * 2015-11-24 2016-01-27 浪潮(北京)电子信息产业有限公司 一种同步接口报文与javaBean的方法及装置
CN106354481A (zh) * 2015-07-13 2017-01-25 阿里巴巴集团控股有限公司 对http请求进行统一映射的方法和设备
CN106484826A (zh) * 2016-09-28 2017-03-08 山东浪潮商用系统有限公司 一种操作数据库的方法及装置
CN106649810A (zh) * 2016-12-29 2017-05-10 山东舜网传媒股份有限公司 基于Ajax的新闻网页动态数据的抓取方法及系统
CN107590259A (zh) * 2017-09-21 2018-01-16 浪潮软件股份有限公司 一种数据服务的发布方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895607B2 (en) * 2006-11-02 2011-02-22 International Business Machines Corporation Method for displaying and formatting messages in web applications using JavaServer Faces
CN100520717C (zh) * 2007-08-31 2009-07-29 南京联创科技股份有限公司 基于mvc的业务组装和页面模板化开发web平台的方法
CN106126224A (zh) * 2016-06-21 2016-11-16 浪潮软件集团有限公司 一种生成程序对象的工具、系统和方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002031651A1 (en) * 2000-10-11 2002-04-18 Bea Systems, Inc. Method for developing business components
CN101697119A (zh) * 2009-10-12 2010-04-21 南京联创科技集团股份有限公司 基于JavaBean类导入格式取代传统URL访问地址的实现方法
CN102111282A (zh) * 2009-12-24 2011-06-29 上海杉达学院 一种基于电信业务的信息管理系统架构及其构建方法
CN103699386A (zh) * 2013-12-27 2014-04-02 云南电网公司玉溪供电局 一种基于osgi的通用数据转换引擎系统
CN106354481A (zh) * 2015-07-13 2017-01-25 阿里巴巴集团控股有限公司 对http请求进行统一映射的方法和设备
CN105279032A (zh) * 2015-11-24 2016-01-27 浪潮(北京)电子信息产业有限公司 一种同步接口报文与javaBean的方法及装置
CN106484826A (zh) * 2016-09-28 2017-03-08 山东浪潮商用系统有限公司 一种操作数据库的方法及装置
CN106649810A (zh) * 2016-12-29 2017-05-10 山东舜网传媒股份有限公司 基于Ajax的新闻网页动态数据的抓取方法及系统
CN107590259A (zh) * 2017-09-21 2018-01-16 浪潮软件股份有限公司 一种数据服务的发布方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Android学习之Json解析库Moshi";余小涛;《https://blog.csdn.net/qq_23940659/article/details/52144683》;20160807;全文 *
"一个现代化的JSON库Moshi针对Android和Java";天羽飞龙;《https://www.bbsmax.com/A/pRdB22m7dn/》;20160216;全文 *
JavaBean构造使用Build模式;Android萌新学院;《https://blog.csdn.net/wds1181977/article/details/52117767》;20160804;网页第1-3页 *

Also Published As

Publication number Publication date
CN110554857A (zh) 2019-12-10

Similar Documents

Publication Publication Date Title
CN108108162B (zh) 应用程序编程接口生成方法及装置
CN106919509B (zh) 一种客户端生成方法、装置及电子设备
EP3433732B1 (en) Converting visual diagrams into code
CN110198247B (zh) 接口测试方法及系统
US7240279B1 (en) XML patterns language
CN110554857B (zh) JavaBean生成方法、装置、系统及可读存储介质
WO2019233293A1 (zh) 一种应用程序的开发方法和装置
CN111666526A (zh) 页面生成方法、装置、设备及存储介质
CN108595171B (zh) 对象的模型生成方法、装置、设备及存储介质
CN112819153A (zh) 一种模型转化方法及装置
CN104407863A (zh) 抽象控件模型编程装置和方法
CN112328226B (zh) 一种嵌入式系统自动化测试代码生成方法及装置
CN111061464B (zh) 解析代码生成方法、装置、设备及存储介质
CN108664546B (zh) Xml数据结构转换方法和装置
CN114153459A (zh) 接口文档生成方法及装置
CN111857709A (zh) React组件和Flutter组件的映射方法、装置、电子设备及存储介质
CN111580821B (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
CN114238151A (zh) 一种软件测试方法、装置、电子设备及存储介质
CN111240681A (zh) 一种不同编程语言的转换方法及装置
CN111596905A (zh) 生成java对象的方法、装置、存储介质及终端
CN110990000A (zh) Mvc模式设计模型层的数据请求处理方法、装置及设备
CN115794214A (zh) 应用模块元数据管理方法、设备、存储介质及装置
CN114706582A (zh) 程序运行时的图标处理方法及装置、电子设备、存储介质
CN114281341A (zh) 数据结构定义文件的编译方法、装置、计算机设备及介质
CN113050935A (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
GR01 Patent grant
GR01 Patent grant