一种json数据转换成模型数据的方法及系统的制作方法

文档序号:8934984阅读:1216来源:国知局
一种json数据转换成模型数据的方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据分析技术领域,更具体地说,涉及一种JSON数据转换成模型数据的方法及系统。
【背景技术】
[0002]JSON(JavaScript Object Notat1n)是一种轻量级的数据交换格式,易于人阅读和书写,易于机器解析和生成,可以被用来作为数据交换格式;同时,JSON是JavaScript规范的一个子集,采用完全独立语言的文本格式,并也使用了类似于C语言的习惯。因此,JSON适合于服务器与JavaScript的交互。
[0003]在移动开发应用时,服务器返回给客户端的数据一般都是JSON格式。作为前端开发者,当收到一 JSON字符串时,需要将其转成自定义的模型数据再使用,如图1所示,当服务器返回的JSON数据比较单一情况时,采用现有技术可以快速实现数据解析;但是,当服务器返回的JSON数据很复杂时,如JSON中嵌套多层数据对象,使用现有技术无法高效的完成数据解析操作,此时,其解析的过程是耗时操作,会阻塞程序运行。
[0004]目前,现有技术中将JSON数据转成自定义的模型数据通常采用两种方法,其中,第一种方法为Key-Value法,即根据字典中对应的Key值获取出对应的Value值,具体包括步骤依次有:根据JSON字符串获取其内部的键值对;根据获取到的键值对,通过Key获取对应的数组;获取该数组中的键值对;根据获取到的数组的键值对,通过Key获取其内部的键值对中的值;根据Key值对应的Value值将该数组的键值对中的值赋值给对应的属性值。但是当模型数据的内部的属性越多时,采用此种方法,冗余的代码量就相应的增多,且代码不易维护。
[0005]第二种方法为KVC法,即键值编码,具体的实现步骤如图2所示,包括:将JSON字符串序列化;将序列化后的JSON字符串转换成字典类型数据或数组类型数据;判断字典中或数组中的数据类型是否为对象,若是,则继续判断,若否,则采用苹果提供的接口方法(即键值编码)将字典类型数据或数组类型数据转成模型数据,即给对象的属性赋值。但是,采用这种方法,只有遍历一模型中所有的成员变量后通过成员变量从字典中取出对应的值并赋值,否则,当模型中的属性数量与字典中的Key的数量不一样时,就会报错;同时,若对应的属性又是一个对象时,需要拦截set方法,并使用键值编码重写set方法。
[0006]由上述分析可知,上述两种方法均耗时,转模型数据的效率低;无法满足终端高性能的要求,且用户体验差。

【发明内容】

[0007]本发明要解决的技术问题在于,针对现有技术中将JSON数据转成自定义的模型数据的方法的不足,提供一种JSON数据转换成模型数据的方法及系统。
[0008]本发明解决上述问题的技术方案是提供了一种JSON数据转换成模型数据的方法,该方法包括以下步骤:
[0009]S1、将JSON数据序列化成字典或数组类型的数据;
[0010]S2、使用运行时机制循环遍历该字典或数组类型的数据,获取其内存的首地址;
[0011]S3、根据该首地址动态设置SEL方法,以定位对象;
[0012]S4、使用消息机制动态地给对象发送消息,获取对象的属性值;
[0013]S5、根据该属性值生成模型数据。
[0014]在上述的JSON数据转换成模型数据的方法中,该方法进一步包括:
[0015]S0、在客户端向服务器发送交互请求后,服务器返回JSON数据。
[0016]在上述的JSON数据转换成模型数据的方法中,该方法进一步包括:
[0017]S6、将生成的模型数据传递给客户端。
[0018]本发明还提供了一种JSON数据转换成模型数据的系统,该系统应用于客户端与服务器之间的交互,包括:
[0019]第一单元,用于将JSON数据序列化成字典或数组类型的数据;
[0020]第二单元,用于使用运行时机制循环遍历该字典或数组类型的数据,获取其内存的首地址;
[0021]第三单元,用于根据该首地址动态设置SEL方法,以定位对象;
[0022]第四单元,用于使用消息机制动态地给对象发送消息,获取对象的属性值;
[0023]第五单元,用于根据该属性值生成模型数据。
[0024]在上述的JSON数据转换成模型数据的系统中,所述客户端包括发送模块,用于向服务器发送交互请求,
[0025]在上述的JSON数据转换成模型数据的系统中,该系统进一步包括:
[0026]第六单元,用于将生成的模型数据传递给所述客户端。。
[0027]实施本发明的JSON数据转换成模型数据的方法及系统的有益效果有:可以快速而高效地将JSON数据转换成模型数据,提高了运行效率。同时,在程序运行过程中动态修改类、对象中的属性和方法。此外,采用了运行时机制,程序的性能会更好,能满足终端高性能的要求,用户体验较好。
【附图说明】
[0028]图1是网络数据传输过程的示意图。
[0029]图2是现有的键值编码法将JSON数据转成自定义的模型数据的流程图。
[0030]图3是本发明的JSON数据转换成模型数据的方法实施例的流程图。
[0031]图4是本发明的JSON数据转换成模型数据的系统实施例的结构示意图。
【具体实施方式】
[0032]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0033]如图3所示,是本发明的JSON数据转换成模型数据的方法实施例的流程图。该方法包括以下步骤:
[0034]S1、将JSON数据序列化成字典或数组类型的数据;
[0035]其中,序列化(Serializat1n)是将对象状态转换为可保持或传输的格式的过程。
[0036]S2、使用运行时机制循环遍历该字典或数组类型的数据,获取其内存的首地址;
[0037]其中,运行时机制是更底层的语言。
[0038]S3、根据该首地址动态设置SEL方法,以定位对象;
[0039]S4、使用消息机制动态地给对象发送消息,获取对象的属性值
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1