CN106776779A - 基于Mac平台的JSON数据生成实体文件的方法 - Google Patents
基于Mac平台的JSON数据生成实体文件的方法 Download PDFInfo
- Publication number
- CN106776779A CN106776779A CN201611042324.7A CN201611042324A CN106776779A CN 106776779 A CN106776779 A CN 106776779A CN 201611042324 A CN201611042324 A CN 201611042324A CN 106776779 A CN106776779 A CN 106776779A
- Authority
- CN
- China
- Prior art keywords
- json data
- type
- json
- entity
- model
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 235000009470 Theobroma cacao Nutrition 0.000 abstract description 3
- 244000240602 cacao Species 0.000 abstract 1
- 230000008569 process Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 244000299461 Theobroma cacao Species 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Mac平台的JSON数据生成实体文件的方法,涉及实体文件的生成技术领域。该方法,通过JSON数据类型分析和字段解析,转换成对应类型的目标程序的model,并封装成实体文件,实现了自动将JSON字段与Cocoa的程序中的类型进行映射,支持4种Model的格式(NSObject,Mantle,Swift,ObjectMapper),减少了利用现有技术在编写Model上面花费的时间,成倍的节省开发时间;通过程序纪录分析数据名称与类型,减少了出错的几率,使开发人员可以将更多的时间投入到程序逻辑开发中。
Description
技术领域
本发明涉及实体文件的生成技术领域,尤其涉及一种基于Mac平台的JSON数据生成实体文件的方法。
背景技术
目前,将JSON数据生成实体文件(Model),一般使用一个命令行工具,通过一个给定的JSON文件来生成Swift相关的Model,这种方法在使用过程中,存在以下缺陷:
1.命令行工具使用成本比较高,需要记录相应的指令集才行;
2.用户拿到给定的JSON后还需要创立一个相应的JSON文件,而这个步骤在实体文件生成过程中没有什么用途,显得没有必要,浪费了资源空间;
3.NSCoding的支持不可选,存在冗余代码的情况,从而使手动修改Model的成本变高;
4.模版单一,只能生成NSObject类型或Swift对应的Model类;
5.不能定制头部说明文档,比如作者,机构名;
6.无法兼容第三方框架的Model,由于传统的Model在JSON映射实体需要编写大量的代码,而第三方Model很好的解决了转换的复杂度。
另外,在编写接口对应的Model类这些工作中,往往花费的时间占用了很大的一部分开发时间,在编写过程中需要对照JSON数据进行一一的数据判断,与字段名称对应编写,容易出错,效率很低。
发明内容
本发明的目的在于提供一种基于Mac平台的JSON数据生成实体文件的方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种基于Mac平台的JSON数据生成实体文件的方法,包括如下步骤:
S1,读取JSON数据,判断所述JSON数据的类型;
S2,根据所述JSON数据的类型,对所述JSON数据进行解析,得到所述JSON数据的所有字段;
S3,根据每个所述JSON数据的字段,拼装成对应的model的字符,所述字符包括所述JSON数据的字段的名称和类型;
S4,根据所述JSON数据的类型,选取对应类型的实体类模板;
S5,根据所述模板的类型对所述模板进行解析,得到所述模板的格式;
S6,将所述模板的格式与所述model的字符拼装,并写入到文件中,生成model类。
优选地,所述JSON数据的类型包括:NSObject,Mantle,Swift和ObjectMapper。
优选地,S2中,所述对所述JSON数据进行解析,得到所述JSON数据的所有字段,具体为:将所述JSON数据转换为NSDictionary字典,通过NSDictionary的allkeys方法,获取所有的JSON属性名,并保存到数组中。
优选地,S3中,所述根据每个所述JSON数据的字段,拼装成对应的model的字符,具体为:遍历S2步骤中程序存储的数组,并通过数组的key来对S2中的NSDictionary进行取值,将取值结果的类型进行判断,并与字段名做对应的存储。
优选地,S5具体为:判断选取的实体模版,根据S3步骤中的字段名与字段类型,进行分别对应的处理。
本发明的有益效果是:本发明提供的基于Mac平台的JSON数据生成实体文件的方法,通过JSON数据类型分析和字段解析,转换成对应类型的目标程序的model,并封装成实体文件,实现了自动将JSON字段与Cocoa的程序中的类型进行映射,支持4种Model的格式(NSObject,Mantle,Swift,ObjectMapper),减少了利用现有技术在编写Model上面花费的时间,成倍的节省开发时间;通过程序纪录分析数据名称与类型,减少了出错的几率,使开发人员可以将更多的时间投入到程序逻辑开发中。
附图说明
图1是本发明提供的基于Mac平台的JSON数据生成实体文件的方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供了一种基于Mac平台的JSON数据生成实体文件的方法,包括如下步骤:
S1,读取JSON数据,判断所述JSON数据的类型;
S2,根据所述JSON数据的类型,对所述JSON数据进行解析,得到所述JSON数据的所有字段;
S3,根据每个所述JSON数据的字段,拼装成对应的model的字符,所述字符包括所述JSON数据的字段的名称和类型;
S4,根据所述JSON数据的类型,选取对应类型的实体类模板;
S5,根据所述模板的类型对所述模板进行解析,得到所述模板的格式;
S6,将所述模板的格式与所述model的字符拼装,并写入到文件中,生成model类。
其中,所述实体的类型包括:NSObject,MTLModel,Swift和ObjectMapper。则模板的类型就对应包括:Header_NSObject.tpl,Source_NSObject.tpl,Header_MTLModel.tpl,Source_MTLModel.tpl,Swift.tpl,ObjectMapper_Swift.tpl,因此,采用本发明提供的方法,可以将JSON数据实现对NSObject,Mantle,Swift和ObjectMap per四个类型的model类的生成。
本发明实施例中,S2中,所述对所述JSON数据进行解析,得到所述JSON数据的所有字段,具体可以为:将JSON数据转换为NSDictionary字典,通过NSDictionary的allkeys方法,获取所有的JSON属性名,并保存到数组中
本发明实施例中,S3中,所述根据每个所述JSON数据的字段,拼装成对应的model的字符,具体可以为:遍历S2步骤中程序存储的数组,并通过数组的key来对S2中的NSDictionary进行取值,将取值结果的类型进行判断,并与字段名做对应的存储。
本发明实施例中,S5具体可以为:判断选取的实体模版,根据S3步骤中的字段名与字段类型,进行分别对应的处理
通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明提供的基于Mac平台的JSON数据生成实体文件的方法,通过JSON数据类型分析和字段解析,转换成对应类型的目标程序的model,并封装成实体文件,实现了自动将JSON字段与Cocoa的程序中的类型进行映射,支持4种Model的格式(NSObject,Mantle,Swift,ObjectMapper),减少了利用现有技术在编写Model上面花费的时间,成倍的节省开发时间;通过程序纪录分析数据名称与类型,减少了出错的几率,使开发人员可以将更多的时间投入到程序逻辑开发中。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。
上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (5)
1.一种基于Mac平台的JSON数据生成实体文件的方法,其特征在于,包括如下步骤:
S1,读取JSON数据,判断所述JSON数据的类型;
S2,根据所述JSON数据的类型,对所述JSON数据进行解析,得到所述JSON数据的所有字段;
S3,根据每个所述JSON数据的字段,拼装成对应的model的字符,所述字符包括所述JSON数据的字段的名称和类型;
S4,根据所述JSON数据的类型,选取对应类型的实体类模板;
S5,根据所述模板的类型对所述模板进行解析,得到所述模板的格式;
S6,将所述模板的格式与所述model的字符拼装,并写入到文件中,生成model类。
2.根据权利要求1所述的基于Mac平台的JSON数据生成实体文件的方法,其特征在于,所述JSON数据的类型包括:NSObject,Mantle,Swift和ObjectMapper。
3.根据权利要求1所述的基于Mac平台的JSON数据生成实体文件的方法,其特征在于,S2中,所述对所述JSON数据进行解析,得到所述JSON数据的所有字段,具体为:将所述JSON数据转换为NSDictionary字典,通过NSDictionary的allkeys方法,获取所有的JSON属性名,并保存到数组中。
4.根据权利要求1所述的基于Mac平台的JSON数据生成实体文件的方法,其特征在于,S3中,所述根据每个所述JSON数据的字段,拼装成对应的model的字符,具体为:遍历S2步骤中程序存储的数组,并通过数组的key来对S2中的NSDictionary进行取值,将取值结果的类型进行判断,并与字段名做对应的存储。
5.根据权利要求1所述的基于Mac平台的JSON数据生成实体文件的方法,其特征在于,S5具体为:判断选取的实体模版,根据S3步骤中的字段名与字段类型,进行分别对应的处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611042324.7A CN106776779B (zh) | 2016-11-23 | 2016-11-23 | 基于Mac平台的JSON数据生成实体文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611042324.7A CN106776779B (zh) | 2016-11-23 | 2016-11-23 | 基于Mac平台的JSON数据生成实体文件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776779A true CN106776779A (zh) | 2017-05-31 |
CN106776779B CN106776779B (zh) | 2020-08-25 |
Family
ID=58974618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611042324.7A Active CN106776779B (zh) | 2016-11-23 | 2016-11-23 | 基于Mac平台的JSON数据生成实体文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776779B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967368A (zh) * | 2017-12-29 | 2018-04-27 | 北京酷我科技有限公司 | 一种包含数组结构的缓存方法 |
CN108170652A (zh) * | 2017-12-29 | 2018-06-15 | 北京酷我科技有限公司 | 一种iOS字典安全解析的方法 |
CN109885577A (zh) * | 2019-03-11 | 2019-06-14 | Oppo广东移动通信有限公司 | 数据处理方法、装置、终端及存储介质 |
CN110147536A (zh) * | 2019-05-24 | 2019-08-20 | 深圳市多翼创新科技有限公司 | 一种基于文件映射的数据处理方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140237595A1 (en) * | 2013-02-15 | 2014-08-21 | Qualcomm Incorporated | APIs for Obtaining Device-Specific Behavior Classifier Models from the Cloud |
CN104391881A (zh) * | 2014-10-30 | 2015-03-04 | 杭州安恒信息技术有限公司 | 一种基于分词算法的日志解析方法及系统 |
US9231904B2 (en) * | 2006-09-25 | 2016-01-05 | Weaved, Inc. | Deploying and managing networked devices |
-
2016
- 2016-11-23 CN CN201611042324.7A patent/CN106776779B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9231904B2 (en) * | 2006-09-25 | 2016-01-05 | Weaved, Inc. | Deploying and managing networked devices |
US20140237595A1 (en) * | 2013-02-15 | 2014-08-21 | Qualcomm Incorporated | APIs for Obtaining Device-Specific Behavior Classifier Models from the Cloud |
CN104391881A (zh) * | 2014-10-30 | 2015-03-04 | 杭州安恒信息技术有限公司 | 一种基于分词算法的日志解析方法及系统 |
Non-Patent Citations (1)
Title |
---|
IOS开发实战: "《iOS开发实战》", 31 August 2016, 清华大学出版社 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967368A (zh) * | 2017-12-29 | 2018-04-27 | 北京酷我科技有限公司 | 一种包含数组结构的缓存方法 |
CN108170652A (zh) * | 2017-12-29 | 2018-06-15 | 北京酷我科技有限公司 | 一种iOS字典安全解析的方法 |
CN107967368B (zh) * | 2017-12-29 | 2021-12-28 | 北京酷我科技有限公司 | 一种包含数组结构的缓存方法 |
CN109885577A (zh) * | 2019-03-11 | 2019-06-14 | Oppo广东移动通信有限公司 | 数据处理方法、装置、终端及存储介质 |
CN109885577B (zh) * | 2019-03-11 | 2021-07-13 | Oppo广东移动通信有限公司 | 数据处理方法、装置、终端及存储介质 |
CN110147536A (zh) * | 2019-05-24 | 2019-08-20 | 深圳市多翼创新科技有限公司 | 一种基于文件映射的数据处理方法、装置及设备 |
CN110147536B (zh) * | 2019-05-24 | 2023-03-24 | 深圳市多翼创新科技有限公司 | 一种基于文件映射的数据处理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106776779B (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ma et al. | Language-driven synthesis of 3D scenes from scene databases | |
CN108399130A (zh) | 自动生成测试案例的方法、装置、设备及可读存储介质 | |
US20220080318A1 (en) | Method and system of automatic animation generation | |
CN106776779A (zh) | 基于Mac平台的JSON数据生成实体文件的方法 | |
CN111126019B (zh) | 基于模式定制的报表生成方法、装置和电子设备 | |
CN111105839B (zh) | 芯片测试方法、装置、电子设备及计算机可读介质 | |
CN111309313A (zh) | 一种快速生成html以及存储表单数据的方法 | |
CN110705237B (zh) | 文档的自动生成方法、数据处理设备及存储介质 | |
CN102375746A (zh) | 一种输入法自适应应用程序的方法及装置 | |
CN107608951B (zh) | 报表生成方法和系统 | |
CN108509199A (zh) | 自动生成中文注释的方法、装置、设备及存储介质 | |
CN103559184A (zh) | 表单页面的显示方法和装置 | |
CN111061475A (zh) | 软件代码生成方法、装置、计算机设备和存储介质 | |
CN105718527A (zh) | 一种复习题目生成方法及装置 | |
CN110955410A (zh) | 一种代码自动生成方法、装置、设备及介质 | |
CN104049974A (zh) | 控件动态组装方法和系统 | |
CN106502680B (zh) | 一种通过可视化界面进行图元扩展的方法 | |
CN105095285B (zh) | 数字出版物导览目录处理方法和装置 | |
CN111507075B (zh) | 一种进行数据格式转换的方法及装置 | |
CN106293862A (zh) | 一种可扩展标记语言xml数据的解析方法和装置 | |
CN115099309A (zh) | 一种为图数据的存储和索引设计代价评估模型的方法 | |
CN110533143B (zh) | 生成电子卡片的方法与装置、存储介质及计算机设备 | |
CN111666073B (zh) | 一种基于领域驱动设计的图形化模型构建方法及装置 | |
Wang et al. | A Computer Experiment Teaching System Based on OMAP Embedded System. | |
CN115794967B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200814 Address after: 100080 Beijing city Haidian District Danleng Street No. 3 floor 10 block B room 1010 Patentee after: BEIJING QIERBULAITE SCIENCE & TECHNOLOGY Co.,Ltd. Address before: 100080 Beijing city Haidian District Danleng Street No. 3 B block 12 layer 1207 Patentee before: BEIJING CHEWANGTONG TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |