CN106776779A - 基于Mac平台的JSON数据生成实体文件的方法 - Google Patents

基于Mac平台的JSON数据生成实体文件的方法 Download PDF

Info

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
Application number
CN201611042324.7A
Other languages
English (en)
Other versions
CN106776779B (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.)
Beijing Cheerbright Technologies Co Ltd
Original Assignee
Beijing Vehicle Cnc Technology 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 Beijing Vehicle Cnc Technology Co Ltd filed Critical Beijing Vehicle Cnc Technology Co Ltd
Priority to CN201611042324.7A priority Critical patent/CN106776779B/zh
Publication of CN106776779A publication Critical patent/CN106776779A/zh
Application granted granted Critical
Publication of CN106776779B publication Critical patent/CN106776779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data 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数据生成实体文件的方法
技术领域
本发明涉及实体文件的生成技术领域,尤其涉及一种基于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步骤中的字段名与字段类型,进行分别对应的处理。
CN201611042324.7A 2016-11-23 2016-11-23 基于Mac平台的JSON数据生成实体文件的方法 Active CN106776779B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
IOS开发实战: "《iOS开发实战》", 31 August 2016, 清华大学出版社 *

Cited By (7)

* Cited by examiner, † Cited by third party
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