CN112214212A - 一种根据json格式数据生成c#语言源代码的方法 - Google Patents
一种根据json格式数据生成c#语言源代码的方法 Download PDFInfo
- Publication number
- CN112214212A CN112214212A CN202011076133.9A CN202011076133A CN112214212A CN 112214212 A CN112214212 A CN 112214212A CN 202011076133 A CN202011076133 A CN 202011076133A CN 112214212 A CN112214212 A CN 112214212A
- Authority
- CN
- China
- Prior art keywords
- name
- value
- language
- data
- format
- 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 19
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
一种根据JSON格式数据生成C#语言源代码的方法,首先将JSON格式数据依次存储为“名称/值”对的集合,且“名称/值”对之间使用英文逗号分隔,“名称/值”中的值为使用英文双引号修饰的字符串或使用英文中括号修饰的有序列表,有序列表中列表项是英文逗号分隔的“名称/值”对或值,而后定义与C#语言中格式和数据类型对应的标识符,以与C#语言中的格式和数据类型进行对比,待每次比对完成后在输出中增加一行与之对应C#语言中的格式或数据类型代码,进而完成JSON格式数据生成C#语言源代码,有效降低语法错误,提高软件开发的工作效率。
Description
技术领域
本发明涉及源代码转换技术领域,尤其涉及一种根据JSON格式数据生成C#语言源代码的方法。
背景技术
图形化编辑器生成的JSON格式数据不是针对某一种固定的编程语言生成,而在软件开发过程中常采用C#语言编程,这样一来图形化编辑器生成的JSON格式数据与C#语言编程不兼容,相互转换易出现语法错误,进而影响程序输出,导致软件开发工作效率低。
发明内容
本发明所解决的技术问题在于提供一种根据JSON格式数据生成C#语言源代码的方法,以解决上述背景技术中的问题。
本发明所解决的技术问题采用以下技术方案来实现:
一种根据JSON格式数据生成C#语言源代码的方法,首先将JSON格式数据依次存储的“名称/值”对的集合,且“名称/值”对之间使用英文逗号分隔,值可以是使用英文双引号修饰的字符串,也可以是使用英文中括号修饰的有序列表,列表项是英文逗号分隔的“名称/值”对或值,有序列表中的列表项是英文逗号分隔的“名称/值”对或值,而后定义与C#语言中格式和数据类型对应的标识符,以与C#语言中的格式和数据类型进行对比,待每次比对完成后在输出中增加一行与之对应C#语言中的格式或数据类型代码,进而完成JSON格式数据生成C#语言源代码;具体步骤如下:
步骤一、定义一组格式标识符,分别对应C#语言中的开始符({)、结束符(})、申明变量、变量赋值、条件(if)、否则(else)、循环(for)以及循环(while);
步骤二、定义另一组数据类型标识符,对应C#语言中的数据类型;
步骤三、从文件或其它渠道读取已生成的JSON格式数据,并获取JSON格式数据中“名称/值”对的集合;
步骤四、将步骤三中获取的“名称/值”对的集合中的名称与步骤一中定义的格式标识符和步骤二中定义的数据类型标识符进行比对:
当名称为步骤一中定义的开始标识符时,在输出中增加一行“{”;
当名称为步骤一中定义的结束标识符时,在输出中增加一行“}”;
当名称为步骤一中定义的申明变量标识符时,则对“名称/值”对中的值进行分解,此时的值为有序列表,有序列表的列表项为“名称/值”,在步骤二定义的数据类型标识符中查找有序列表中列表项的名称对应的数据类型,完成比对后在输出中增加一行“有序列表中列表项的名称对应的数据类型 有序列表的列表项值;”;
当名称为步骤一中定义的变量赋值标识符时,则对“名称/值”对中的值进行分解,此时的值为有序列表,有序列表的列表项为“名称/值”,在输出中增加一行“有序列表的列表项名称=有序列表的列表项值;”;
当名称为步骤一中定义的条件(if)标识符时,在输出中增加一行“if(值)”;
当名称为步骤一中定义的否则(else)标识符时,在输出中增加一行“else”;
当名称为步骤一中定义的循环(for)标识符时,则对“名称/值”对中的值进行分解,此时的值为有序列表,有序列表的列表项是英文逗号分隔的值,在输出中增加一行“for(列表项1; 列表项2; 列表项3)”;
当名称为步骤一中定义的循环(while)标识符时,在输出中增加一行“while(值)”;
步骤五、重复执行步骤四,直至所有JSON格式数据生成C#语言源代码。
有益效果:本发明中将获取JSON格式数据储存为“名称/值”对的集合,而后定义与C#语言中格式和数据类型对应的标识符,以与C#语言中的格式和数据类型进行对比,进而完成JSON格式数据生成C#语言源代码,有效降低语法错误,提高软件开发的工作效率。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施例,进一步阐述本发明。
一种根据JSON格式数据生成C#语言源代码的方法,所述JSON格式数据由图形化编辑器生成,其内容为依次存储的“名称/值”对的集合,且“名称/值”对之间使用英文逗号分隔,值可以是使用英文双引号修饰的字符串,也可以是使用英文中括号修饰的有序列表,有序列表中的列表项是英文逗号分隔的“名称/值”对或值,而后定义与C#语言中格式和数据类型对应的标识符,以与C#语言中的格式和数据类型进行对比,待每次比对完成后在输出中增加一行与之对应C#语言中的格式或数据类型代码,进而完成JSON格式数据生成C#语言源代码;具体步骤如下:
步骤一、定义一组格式标识符,分别对应C#语言中的开始符({)、结束符(})、申明变量、变量赋值、条件(if)、否则(else)、循环(for)以及循环(while);
步骤二、定义另一组数据类型标识符,对应C#语言中的数据类型;
步骤三、从文件或其它渠道读取已生成的JSON格式数据,并获取JSON格式数据中“名称/值”对的集合;
步骤四、将步骤三中获取的“名称/值”对的集合中的名称与步骤一中定义的格式标识符和步骤二中定义的数据类型标识符进行比对:
当名称为步骤一中定义的开始标识符时,在输出中增加一行“{”;
当名称为步骤一中定义的结束标识符时,在输出中增加一行“}”;
当名称为步骤一中定义的申明变量标识符时,则对“名称/值”对中的值进行分解,此时的值为有序列表,有序列表的列表项为“名称/值”,在步骤二定义的数据类型标识符中查找有序列表中列表项的名称对应的数据类型,完成比对后在输出中增加一行 “有序列表中列表项的名称对应的数据类型 有序列表的列表项值;”;
当名称为步骤一中定义的变量赋值标识符时,则对“名称/值”对中的值进行分解,此时的值为有序列表,有序列表的列表项为“名称/值”,在输出中增加一行“有序列表的列表项名称=有序列表的列表项值;”;
当名称为步骤一中定义的条件(if)标识符时,在输出中增加一行“if(值)”;
当名称为步骤一中定义的否则(else)标识符时,在输出中增加一行“else”;
当名称为步骤一中定义的循环(for)标识符时,则对“名称/值”对中的值进行分解,此时的值为有序列表,有序列表的列表项是英文逗号分隔的值,在输出中增加一行“for(列表项1; 列表项2; 列表项3)”;
当名称为步骤一中定义的循环(while)标识符时,在输出中增加一行“while(值)”;
步骤五、重复执行步骤四,直至所有JSON格式数据生成C#语言源代码。
Claims (9)
1.一种根据JSON格式数据生成C#语言源代码的方法,其特征在于,首先将JSON格式数据依次存储为“名称/值”对的集合,且“名称/值”对之间使用英文逗号分隔,“名称/值”中的值为使用英文双引号修饰的字符串或使用英文中括号修饰的有序列表,有序列表中列表项是英文逗号分隔的“名称/值”对或值,而后定义与C#语言中格式和数据类型对应的标识符,以与C#语言中的格式和数据类型进行对比,待每次比对完成后在输出中增加一行与之对应C#语言中的格式或数据类型代码,进而完成JSON格式数据生成C#语言源代码。
2.根据权利要求1所述的一种根据JSON格式数据生成C#语言源代码的方法,其特征在于,具体步骤如下:
步骤一、定义一组格式标识符,对应C#语言中的格式;
步骤二、定义另一组数据类型标识符,对应C#语言中的数据类型;
步骤三、读取已生成的JSON格式数据,并获取JSON格式数据中“名称/值”对的集合;
步骤四、将步骤三中获取的“名称/值”对的集合中的名称与步骤一中定义的格式标识符和步骤二中定义的数据类型标识符进行比对,待“名称/值”对的集合中的名称比对为与步骤一中定义的格式标识符或步骤二中定义的数据类型标识符一致时,在输出中增加一行C#语言中的格式或数据类型代码;
步骤五、重复执行步骤四,直至所有JSON格式数据生成C#语言源代码。
3.根据权利要求2所述的一种根据JSON格式数据生成C#语言源代码的方法,其特征在于,所述步骤一)中,格式标识符对应C#语言中的格式包括开始符({)、结束符(})、申明变量、变量赋值、条件(if)、否则(else)、循环(for)以及循环(while)。
4.根据权利要求2或3所述的一种根据JSON格式数据生成C#语言源代码的方法,其特征在于,所述步骤四)中,
当名称为步骤一中定义的开始标识符时,在输出中增加一行“{”;
当名称为步骤一中定义的结束标识符时,在输出中增加一行“}”。
5. 根据权利要求2或3所述的一种根据JSON格式数据生成C#语言源代码的方法,其特征在于,所述步骤四)中,当名称为步骤一中定义的申明变量标识符时,则对“名称/值”对中的值进行分解,此时的值为有序列表,有序列表的列表项为“名称/值”,在步骤二定义的数据类型标识符中查找有序列表中列表项的名称对应的数据类型,完成比对后在输出中增加一行 “有序列表中列表项的名称对应的数据类型 有序列表的列表项值;”。
6.根据权利要求2或3所述的一种根据JSON格式数据生成C#语言源代码的方法,其特征在于,所述步骤四)中,当名称为步骤一中定义的变量赋值标识符时,则对“名称/值”对中的值进行分解,此时的值为有序列表,有序列表的列表项为“名称/值”,在输出中增加一行“有序列表的列表项名称=有序列表的列表项值;”。
7.根据权利要求2或3所述的一种根据JSON格式数据生成C#语言源代码的方法,其特征在于,所述步骤四)中,当名称为步骤一中定义的条件(if)标识符时,在输出中增加一行“if(值)”;当名称为步骤一中定义的否则(else)标识符时,在输出中增加一行“else”。
8. 根据权利要求2或3所述的一种根据JSON格式数据生成C#语言源代码的方法,其特征在于,所述步骤四)中,当名称为步骤一中定义的循环(for)标识符时,则对“名称/值”对中的值进行分解,此时的值为有序列表,有序列表的列表项是英文逗号分隔的值,在输出中增加一行“for(列表项1; 列表项2; 列表项3)”。
9.根据权利要求2或3所述的一种根据JSON格式数据生成C#语言源代码的方法,其特征在于,所述步骤四)中,当名称为步骤一中定义的循环(while)标识符时,在输出中增加一行“while(值)”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011076133.9A CN112214212B (zh) | 2020-10-10 | 2020-10-10 | 一种根据json格式数据生成c#语言源代码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011076133.9A CN112214212B (zh) | 2020-10-10 | 2020-10-10 | 一种根据json格式数据生成c#语言源代码的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112214212A true CN112214212A (zh) | 2021-01-12 |
CN112214212B CN112214212B (zh) | 2024-04-02 |
Family
ID=74052962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011076133.9A Active CN112214212B (zh) | 2020-10-10 | 2020-10-10 | 一种根据json格式数据生成c#语言源代码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214212B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120323941A1 (en) * | 2011-06-17 | 2012-12-20 | Microsoft Corporation | Processing Queries for Event Data in a Foreign Representation |
CN103605518A (zh) * | 2013-11-19 | 2014-02-26 | 北京国双科技有限公司 | 对象反序列化方法和装置 |
CN105786529A (zh) * | 2016-04-22 | 2016-07-20 | 浙江工业大学 | 一种类托管代码调用c/c++风格函数的复杂结构的参数设计方法 |
CN105989068A (zh) * | 2015-02-10 | 2016-10-05 | 中国移动通信集团贵州有限公司 | 基于超文本标记语言的移动应用生成方法及装置 |
CN106293677A (zh) * | 2015-06-08 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种代码转换方法及装置 |
WO2017072514A1 (en) * | 2015-10-27 | 2017-05-04 | Openiolabs Ltd | Communicating between applications, running on different nodes, having logic in differing languages |
CN109408780A (zh) * | 2018-09-07 | 2019-03-01 | 山东中磁视讯股份有限公司 | 一种Excel文件转换为JSON文件的方法 |
CN110727703A (zh) * | 2019-09-23 | 2020-01-24 | 苏宁云计算有限公司 | 一种自动识别json代码中注释的方法及装置 |
-
2020
- 2020-10-10 CN CN202011076133.9A patent/CN112214212B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120323941A1 (en) * | 2011-06-17 | 2012-12-20 | Microsoft Corporation | Processing Queries for Event Data in a Foreign Representation |
CN103605518A (zh) * | 2013-11-19 | 2014-02-26 | 北京国双科技有限公司 | 对象反序列化方法和装置 |
CN105989068A (zh) * | 2015-02-10 | 2016-10-05 | 中国移动通信集团贵州有限公司 | 基于超文本标记语言的移动应用生成方法及装置 |
CN106293677A (zh) * | 2015-06-08 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种代码转换方法及装置 |
WO2017072514A1 (en) * | 2015-10-27 | 2017-05-04 | Openiolabs Ltd | Communicating between applications, running on different nodes, having logic in differing languages |
CN105786529A (zh) * | 2016-04-22 | 2016-07-20 | 浙江工业大学 | 一种类托管代码调用c/c++风格函数的复杂结构的参数设计方法 |
CN109408780A (zh) * | 2018-09-07 | 2019-03-01 | 山东中磁视讯股份有限公司 | 一种Excel文件转换为JSON文件的方法 |
CN110727703A (zh) * | 2019-09-23 | 2020-01-24 | 苏宁云计算有限公司 | 一种自动识别json代码中注释的方法及装置 |
Non-Patent Citations (3)
Title |
---|
TOMAS PETRICEK等: "Types from data: making structured data first-class citizens in F#", 《ACM SIGPLAN NOTICES》, vol. 51, no. 6, pages 477 - 490, XP058259812, DOI: 10.1145/2908080.2908115 * |
奋斗的中年人哈哈哈: "C# 对象与JSON字符串互相转换的三种方式", Retrieved from the Internet <URL:https://www.cnblogs.com/owenzh/p/11022238.html> * |
孟宇 等: "C#结合InfluxDB在工业中的应用", 《冶金自动化》, vol. 44, no. 1, pages 178 - 181 * |
Also Published As
Publication number | Publication date |
---|---|
CN112214212B (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918666B (zh) | 一种区块链上的数据同步方法和系统 | |
CN108469952B (zh) | 一种管理游戏配置的代码生成方法及配套工具 | |
US10614126B2 (en) | Textual query editor for graph databases that performs semantic analysis using extracted information | |
CN101345707B (zh) | 一种实现IPv6报文分类的方法及设备 | |
US20110202331A1 (en) | Method and software for extracting chemical data | |
CN104035754A (zh) | 一种基于xml的自定义代码生成方法及生成器 | |
CN109522008B (zh) | 一种区块链智能合约构建方法 | |
CN110071871A (zh) | 一种大模式集ip地址匹配方法 | |
CN116225455B (zh) | 一种统计分析报表快速生成方法 | |
CN112214212A (zh) | 一种根据json格式数据生成c#语言源代码的方法 | |
CN109271560A (zh) | 一种基于树模板的链接数据关键词查询方法 | |
CN108509187B (zh) | 一种自动生成软件平台mib功能代码的方法及系统 | |
CN111913704A (zh) | 一种基于VSCode快速开发GSP7脚本的方法及插件工具 | |
CN115080011B (zh) | 基于抽象语法树的代码生成方法及系统 | |
CN111142877A (zh) | Rom芯片补丁的接口函数及参数类型自动化提取方法、系统及存储介质 | |
CN106708954B (zh) | 非标准sql语句的内外连接的转化方法和转化装置 | |
CN104391964A (zh) | 一种将源代码存入图数据库的方法 | |
CN116414395A (zh) | 一种基于递归下降算法的语法树构建方法及装置 | |
CN111930413B (zh) | 一种补丁自动生成方法、装置及系统 | |
CN113076330A (zh) | 查询处理方法、装置、数据库系统、电子设备及存储介质 | |
CN116089476B (zh) | 数据查询方法、装置及电子设备 | |
CN113568662B (zh) | 一种基于调用关系的代码变更影响范围分析方法及系统 | |
CN113220800B (zh) | 基于antlr的数据字段血缘分析方法及装置 | |
CN110515913B (zh) | 日志处理方法及装置 | |
CN114564184A (zh) | 频繁序列挖掘帮助的llvm编译时能耗优化方法及系统 |
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 |