数据生成实体类解决方案

这篇具有很好参考价值的文章主要介绍了数据生成实体类解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据生成实体类解决方案

直接将xml导入到Studio里即可。下载文件连接:

  • CSDN链接
  • 阿里云盘

简介

  • 在我们做接口时,都会遇到各种格式的数据文档,每次都要解析文档,拆分数据、并按需要保存到我们自己的表结构中。
  • 如果内容很复杂,层次结构多,手动编写成是实体类对于开发来说工作量还是比较大的。
  • 基于此,笔者通过这篇文章介绍一下适合于IRIS的数据生成实体类的使用方法,类似于Java框架LombokfastjsonGsonFormat的功能。

工作原理

  1. 解析数据结构。
  2. 根据数据结构生成对应实体类。
  3. 将数据保存到实体类对象。
  4. 将实体类数据输出为对应数据结构。

解析JSON生成实体类

示例JSON消息

{
	"problems": [{
		"Diabetes": [{
			"medications": [{
				"medicationsClasses": [{
					"className": [{
						"associatedDrug": [{
							"name": "asprin",
							"dose": "",
							"strength": "500 mg"
						}]
					}],
					"className2": [{
						"associatedDrug": [{
							"name": "asprin",
							"dose": "",
							"strength": "500 mg"
						}]
					}]
				}]
			}],
			"labs": [{
				"missing_field": "missing_value"
			}]
		}],
		"Asthma": [{}]
	}]
}

解析JSON核心方法:

ClassMethod Json2EntityClass(json As %String, className As %String) As %Status

其中:

  • json - 传入的json字符串或json对象。
  • className - 生成的类的完全限定名,包名 + 类名。

调用示例:

w ##class(Util.GenerateClassUtils).Json2EntityClass(##class(Util.GenerateClassUtils).JsonDemo(), "M.EntityClass.Demo")

数据生成实体类解决方案,M 使用方案,JSON,数据转实体类,实体类,对象,IRIS

USER>w ##class(Util.GenerateClassUtils).Json2EntityClass(##class(Util.GenerateClassUtils).JsonDemo(), "M.EntityClass.Demo")2023-07-02 16:38:05上启动了编译
编译类 M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses.className.associatedDrug
正在编译表 M_EntityClass_Demo_problems_Diabetes_medications_medicationsClasses_className.associatedDrug
正在编译routine M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses.className.associatedDrug.1
0.077s中已成功完成编译.2023-07-02 16:38:05上启动了编译
编译类 M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses.className
正在编译表 M_EntityClass_Demo_problems_Diabetes_medications_medicationsClasses.className
正在编译routine M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses.className.1
0.086s中已成功完成编译.2023-07-02 16:38:05上启动了编译
编译类 M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses.className2.associatedDrug
正在编译表 M_EntityClass_Demo_problems_Diabetes_medications_medicationsClasses_className2.associatedDrug
正在编译routine M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses.className2.associatedDrug.1
0.100s中已成功完成编译.2023-07-02 16:38:05上启动了编译
编译类 M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses.className2
正在编译表 M_EntityClass_Demo_problems_Diabetes_medications_medicationsClasses.className2
正在编译routine M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses.className2.1                                           0.075s中已成功完成编译.2023-07-02 16:38:05上启动了编译
编译类 M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses
正在编译表 M_EntityClass_Demo_problems_Diabetes_medications.medicationsClasses
正在编译routine M.EntityClass.Demo.problems.Diabetes.medications.medicationsClasses.1
0.078s中已成功完成编译.2023-07-02 16:38:06上启动了编译
编译类 M.EntityClass.Demo.problems.Diabetes.medications
正在编译表 M_EntityClass_Demo_problems_Diabetes.medications
正在编译routine M.EntityClass.Demo.problems.Diabetes.medications.1
0.086s中已成功完成编译.2023-07-02 16:38:06上启动了编译
编译类 M.EntityClass.Demo.problems.Diabetes.labs
正在编译表 M_EntityClass_Demo_problems_Diabetes.labs
正在编译routine M.EntityClass.Demo.problems.Diabetes.labs.1
0.070s中已成功完成编译.2023-07-02 16:38:06上启动了编译
编译类 M.EntityClass.Demo.problems.Diabetes
正在编译表 M_EntityClass_Demo_problems.Diabetes
正在编译routine M.EntityClass.Demo.problems.Diabetes.1
0.078s中已成功完成编译.2023-07-02 16:38:06上启动了编译
编译类 M.EntityClass.Demo.problems.Asthma
正在编译表 M_EntityClass_Demo_problems.Asthma
正在编译routine M.EntityClass.Demo.problems.Asthma.1
0.059s中已成功完成编译.2023-07-02 16:38:06上启动了编译
编译类 M.EntityClass.Demo.problems
正在编译表 M_EntityClass_Demo.problems
正在编译routine M.EntityClass.Demo.problems.1
0.083s中已成功完成编译.2023-07-02 16:38:06上启动了编译
编译类 M.EntityClass.Demo
正在编译表 M_EntityClass.Demo
正在编译routine M.EntityClass.Demo.1
0.070s中已成功完成编译.
1

将数据保存到实体类中。

ClassMethod SaveJson2Entity(json As %String, className As %String) As %Status

其中:

  • json - 传入的json字符串或json对象。
  • className - 生成的类的完全限定名,包名 + 类名。

数据生成实体类解决方案,M 使用方案,JSON,数据转实体类,实体类,对象,IRIS

将实体类转为输出为JSON

ClassMethod Entity2Json(className As %String, id As %String) As %Status

其中:

  • className - 生成的类的完全限定名,包名 + 类名。
  • id - 数据唯一标识符。
USER> w ##class(Util.GenerateClassUtils).Entity2Json("M.EntityClass.Demo", 1)
{"problems":[{"Asthma":[{}],"Diabetes":[{"labs":[{"missing_field":"missing_value"}],"medications":[{"medicationsClasses":[{"className":[{"associatedDrug":[{"name":"asprin","strength":"500 mg"}]}],"className2":[{"associatedDrug":[{"name":"asprin","strength":"500 mg"}]}]}]}]}]}]}
{
	"problems": [{
		"Asthma": [{}],
		"Diabetes": [{
			"labs": [{
				"missing_field": "missing_value"
			}],
			"medications": [{
				"medicationsClasses": [{
					"className": [{
						"associatedDrug": [{
							"name": "asprin",
							"strength": "500 mg"
						}]
					}],
					"className2": [{
						"associatedDrug": [{
							"name": "asprin",
							"strength": "500 mg"
						}]
					}]
				}]
			}]
		}]
	}]
}

思考

  • 如何解析HL7生成实体类

  • 如何解析XML生成实体类

以上是个人对数据生成实体类的一些理解,由于个人能力有限,欢迎大家提出意见,共同交流。文章来源地址https://www.toymoban.com/news/detail-519164.html

到了这里,关于数据生成实体类解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包