CN112783581A - 数据处理方法、装置 - Google Patents
数据处理方法、装置 Download PDFInfo
- Publication number
- CN112783581A CN112783581A CN202110083088.8A CN202110083088A CN112783581A CN 112783581 A CN112783581 A CN 112783581A CN 202110083088 A CN202110083088 A CN 202110083088A CN 112783581 A CN112783581 A CN 112783581A
- Authority
- CN
- China
- Prior art keywords
- data
- object data
- preset
- type
- value
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000012937 correction Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000006854 communication Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4492—Inheritance
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法、装置。该方法包括:对接收到的预设格式的数据进行检测,并在检测到所述预设格式的数据中不存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数据表,所述对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值;检测所述对象数据表中是否存在预设类型的对象数据;若所述对象数据表中存在预设类型的对象数据,则获取所述预设类型的对象数据对应的修正数据;采用所述修正数据替换所述预设类型的对象数据,得到经过修正后的对象数据。本申请可以避免客户端出现崩溃或者出现闪退现象。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法、装置。
背景技术
前的应用中存在大量的C/S(服务器-客户端)数据通信,这些数据通信采用的数据交换 格式一般为JSON模型。在数据通信的过程中,由于客户端和服务端之间使用的环境不同(比 如服务端使用的Java虚拟机环境(JVM),客户端使用iOS环境),在数据通信过程中经常会因为数据在不同环境中因为数据类型和默认值表达的原因,导致数据在不同系统之间进 行转义时会出现错误,进而会导致客户端出现崩溃或者出现闪退现象。
现有技术中,为了解决这个问题,一般会采用以下两种方式进行解决:
方式一、通过人为和协议沟通约束,尽量下发统一的数据内容。
方式二、客户端在使用具体数据时,按照对象字段逐个进行校验数据。
然而,发明人发现,采用方式一进行解决时,在实际场景中,会因为开发服务端、客户 端的人力变更等因素,导致不能保持有效的、长期的约束规范;采用方式二进行解决时,客 户端会对对象字段的类型进行校验,这个校验是个强校验,能保证数据准确。但是,客户端 并不会对每个字段都进行校验,尤其是数据透传部分内容,导致不能完全解决转义错误,仍 会导致客户端出现崩溃或者出现闪退现象。
发明内容
有鉴于此,现提供一种数据处理方法、装置、计算机设备及计算机可读存储介质,以解 决现有技术中因为转义出现问题导致客户端出现崩溃或者出现闪退现象的问题。
本申请提供了一种数据处理方法,包括:
对接收到的预设格式的数据进行检测,并在检测到所述预设格式的数据中不存在不符合 预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数据表,所述对象数据表 包括至少一个对象数据,每个对象数据包括对象属性和对象值;
检测所述对象数据表中是否存在预设类型的对象数据;
若所述对象数据表中存在预设类型的对象数据,则获取所述预设类型的对象数据对应的 修正数据;
采用所述修正数据替换所述预设类型的对象数据,得到经过修正后的对象数据。
可选地,所述检测所述对象数据表中是否存在预设类型的对象数据包括:
递归遍历所述对象数据表中的对象数据,并将遍历到的对象数据作为目标对象数据,对 每一个所述目标对象数据执行以下目标对象数据的检测操作:
基于所述目标对象数据中的对象值确定是否存在所述预设类型的对象数据。
可选地,所述基于所述目标对象数据中的对象值确定是否存在所述预设类型的对象数据 包括:
判断所述目标对象数据中的对象值的类型是否为预设类型;
若所述目标对象数据中的对象值的类型为所述预设类型,则判断所述对象值是否符合预 设要求,并根据判断结果确定是否存在所述预设类型的对象数据,其中,在所述判断结果为 所述对象值不符合预设要求时,确定存在所述预设类型的对象数据。
可选地,所述判断所述对象值是否符合预设要求包括:
若所述对象值的类型为数组类型,则遍历所述对象值中的每一个元素,并基于遍历得到 的每一个元素判断所述对象值是否符合预设要求;
若所述对象值的类型为字典类型,则遍历所述对象值中的每一个对象数据,并基于遍历 得到的每一个对象数据判断所述对象值是否符合预设要求;
若所述对象值的类型为基础类型,则直接判定所述对象值符合预设要求。
可选地,所述基于遍历得到的每一个元素判断所述对象值是否符合预设要求的步骤之 后,还包括:
若判断出遍历得到的元素不符合预设要求时,则将不符合所述预设要求的元素删除;
所述基于遍历得到的每一个对象数据判断所述对象值是否符合预设要求的步骤之后,还 包括:
若判断出遍历得到的对象数据不符合预设要求时,则将不符合所述预设要求的对象数据 删除。
可选地,所述方法还包括:
在检测到所述预设格式的数据中存在不符合预设校验规则的数据,输出错误信息。
可选地,所述方法还包括:
在检测到所述对象数据表中存在预设类型的对象数据,将所述预设类型的对象数据上报 至数据监控系统。
本申请还提供了一种数据处理装置,包括:
接收模块,用于对接收到的预设格式的数据进行检测,并在检测到所述预设格式的数据 中不存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数据表, 所述对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值;
检测模块,用于检测所述对象数据表中是否存在预设类型的对象数据;
获取模块,用于若所述对象数据表中存在预设类型的对象数据,则获取所述预设类型的 对象数据对应的修正数据;
替换模块,用于采用所述修正数据替换所述预设类型的对象数据,得到经过修正后的对象数 据。
本申请还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所 述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现 上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被 处理器执行时实现上述方法的步骤。
上述技术方案的有益效果:
本申请实施例中,通过对接收到的预设格式的数据进行检测,并在检测到所述预设格式 的数据中不存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数 据表,所述对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值;检测 所述对象数据表中是否存在预设类型的对象数据;若所述对象数据表中存在预设类型的对象 数据,则获取所述预设类型的对象数据对应的修正数据;采用所述修正数据替换所述预设类 型的对象数据,得到经过修正后的对象数据。在本申请实施例中,通过在检测到对象数据表 中存在预设类型的对象数据时,即对该对象数据进行修正,从而使得最终得到的对象数据不 会存在所述预设类型的数据,进而可以避免因为存在所述预设类型的数据导致客户端出现崩 溃或者闪退现象,提升客户端的质量。
附图说明
图1为本申请实施例的数据处理方法的环境示意图;
图2为本申请所述的数据处理方法的一种实施例的流程图;
图3为本申请一实施方式中基于目标对象数据中的对象值确定是否存在所述预设类型的 对象数据的步骤细化流程示意图;
图4为本申请所述的数据处理方法的另一种实施例的流程图;
图5为本申请所述的数据处理装置的一种实施例的程序模块图;
图6为本申请实施例提供的执行数据处理方法的计算机设备的硬件结构示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本申请的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时, 除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述 的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书 中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公 开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除 非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多 个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信 息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公 开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信 息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响 应于确定”。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序, 仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
图1示意性示出了根据本申请实施例的数据处理方法的框架示意图。在示例性的实施例 中,该应用环境的系统可包括计算机设备10、服务器20。其中,计算机设备10与服务器20 形成无线或有线连接。计算机设备10可以为手机、iPAD,平板电脑、服务器等。服务器20 可以为机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或 者多个服务器所组成的服务器集群)等。
参阅图2,其为本申请一实施例的数据处理方法的流程示意图。本可以理解,本方法实 施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例 性描述,从图中可以看出,本实施例中所提供的数据处理方法包括:
步骤S20、对接收到的预设格式的数据进行检测,并在检测到所述预设格式的数据中不 存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数据表,所述 对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值。
具体地,当计算机设备上安装的客户端接收到服务端传输的预设格式的数据时,客户端 可以对该预设格式的数据进行检测,以检测该数据中是否存在不符合预设校验规则的数据, 并在检测到存在不符合预设校验规则的数据时,对该数据进行相应的处理。作为示例,在检 测到该数据中存在不符合预设校验规则的数据时,可以输出错误信息,以便服务端可以重新 向客户端传输数据,其中,该错误信息可以为当前数据非法,或者当前数据是错误的等。
其中,所述预设格式为客户端和服务端约定的一种数据传输格式,比如,所述预设格式 为json格式,ProtoBuf格式等。在本实施例中,为了便于描述,以下实施例中该预设格式都 以json格式作为示例进行描述。
需要说明的是,JSON是一种轻量级的数据交换格式。ProtoBuf(Google ProtocolBuffer) 是由google公司用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性, 类型于常用的XML及JSON,但具有更小的传输体积、更高的编码、解码能力,特别适合 于数据存储、网络数据传输等对存储体积、实时性要求高的领域。
预设校验规则为预先根据实际情况设定的数据校验规则,该预设校验规则可以用于判定 所述预设格式的数据中是否存在空数据(一般表示数据未知、不适用或将在以后添加数据的 数据),及/或用于判定该预设格式的数据中是否存在错误类型的数据,比如,该预设格式 的数据为JSON数据,当该JSON数据中存在不属于默认的JSON数据支持的以下6种类型 的数据时,则可以确定该JSON数据中存在错误类型的数据。
其中,JSON数据支持的以下6种类型如下:(1)bool,for JSON booleans,即布尔值, 逻辑值;(2)float64,for JSON numbers,即数字,包括整数、浮点数;(3)string,forJSON strings,即字符串;(4)[]interface{},for JSON arrays,即数组;(5)map[string]interface}, for JSON objects,即JSON的对象;(6)nil,for JSON nul1,即空值。
所述反序列化指的是将第一预设格式的数据转换为客户端执行业务时所需要的数据格 式的对象数据表,比如,将服务端传输的JSON格式的数据转换为IOS客户端所需的对象 Model,其中,对象Model为客户端执行业务所需的特定数据对象格式。作为示例,可以采 用YYModel对数据进行反序列化处理。YYModel是YYKit的高效组件之一,用于使用model做数据处理。
在本实施例中,在进行反序列化后可以得到一个对象数据表,其中,该对象数据表中包 括至少一个对象数据,每一个对象数据可以通过键值对(key-value)的形式来代表该对象数 据的对象属性和对象值,也可以通过属性名和属性值的形式来代表该对象数据的对象属性和 对象值,在本实施例中不作限定。
步骤S21,检测所述对象数据表中是否存在预设类型的对象数据。
具体地,所述预设类型为预先设定的经过反序列化处理后会出现转移错误的类型,比如, 对于JSON数据反序列化成Model数据时,该预设类型可以为NSNull类型。
其中,NSNull类型指的是为空的对象。NSNull继承自NSObject,NSNull对象拥有一个 有效的内存地址,可以作为空值容器。不能接受消息,否则会发生崩溃闪退现象。
在一示例性的实施方式中,所述步骤S21可以包括以下步骤:
递归遍历所述对象数据表中的对象数据,并将遍历到的对象数据作为目标对象数据,对 每一个所述目标对象数据执行以下目标对象数据的检测操作:基于所述目标对象数据中的对 象值确定是否存在所述预设类型的对象数据。
具体地,在对对象数据表中的对象数据进行检测时,由于对象数据表中的对象数据时一 种类似“套娃”的形式,,因此需要采用递归遍历的方式进行检测,即先从该对象数据表中 的最外侧的对象数据开始检测,并依次递归检测该对象数据表中内侧数据,直至所有的对象 数据检测完毕为止。
在检测过程中,会将遍历得到的每一个对象数据作为目标对象数据,然后依次对该目标 对象数据进行检测,即基于目标对象数据中的对象值确定是否存在所述预设类型的对象数 据。
在一示例性的实施方式中,参照图3,所述基于目标对象数据中的对象值确定是否存在 所述预设类型的对象数据的步骤包括步骤S30-S31,其中:
步骤S30,判断所述目标对象数据中的对象值的类型是否为预设类型。
具体地,可以执行对象值的类型获取指令,以获取该对象值的类型,在获取到该对象值 的类型之后,即可以将获取到的类型与该预设的类型进行比较,以判定该对象值的类型是否 为预设类型。
作为示例,若所述预设类型为NSNull类型,则在该对象值的类型不为该NSNull类型时, 即可以判定该对象值的类型不为所述预设类型。
步骤S31,若所述目标对象数据中的对象值的类型为所述预设类型,则判断所述对象值 是否符合预设要求,并根据判断结果确定是否存在所述预设类型的对象数据,其中,在所述 判断结果为所述对象值不符合预设要求时,确定存在所述预设类型的对象数据。
具体地,所述预设要求为预先根据实际情况设定的,作为示例,当所述预设类型为NSNull 类型时,所述预设要求为所述对象值为空值(nil),其中,nil是一个指向不存在的对象指 针,即对对象指针对应的内存空间中不存在数据。
在一示例性的实施方式中,对象值的类型不同,判断该对象值是否符合预设要求的方式 也不同。
作为示例,当述对象值的类型为数组类型(Array类型),则遍历所述对象值中的每一 个元素,并基于遍历得到的每一个元素判断所述对象值是否符合预设要求。
具体地,当对象值数据为数组类型时,说明该对象值包括多个元素,则可以依次遍历每 一个元素,并在遍历得到该每一个元素之后,对该元素进行判断以确定所述对象值是否符合 预设要求。
需要说明的是,在判定过程中,需要该对象值中包含的所有元素都符合预设要求时,才 会判定所述对象值符合预设要求。
可以理解的是,在判定过程中,该遍历得到的元素可能为字典类型(Dictionary类型) 的元素,则可以将该字典类型的元素作为一个目标对象数据,然后获取该目标对象数据中的 对象值进行判定,以判定该字典类型的元素是否符合所述预设要求。
在一示例性的实施方式中,若判定出遍历得到的元素不符合预设要求时,可以将不符合 所述预设要求的元素删除,比如,若遍历到的元素如下所示:
"site":["Google","Runoob",null,"Taobao"]
该遍历得到的元素存在字符“null”,然而,字符“null”不是一个符合预设要求的数据, 因此,可以将“null”删除,得到如下所示的元素:
"site":["Google","Runoob","Taobao"]。作为示例,若所述对象值的类型为字典类 型,则遍历所述对象值中的每一个对象数据,并基于遍历得到的每一个对象数据判断所述对 象值是否符合预设要求。
具体地,若所述对象值的类型为字典类型,则先遍历找出其中每一个对象数据,然后用 所有的对象数据的对象属性(比如key值)作为轮询的范围,用每个对象属性对应的对象值 (比如Value值)作为判断的基准。判断Value值时,如果Value值不为空值(nil),则可以判定所述对象值符合预设要求,并继续对下一个对象数据进行判断,直到所有的对象判断 完成为止;若判断出Value值为空值(nil),则可以判定所述对象值不符合预设要求。
需要说明的是,在判定过程中,若该对象数据为数组类型或者字典类型的对象数据,则 可以递归调用一次,以执行对该数组类型或者字典类型的对象数据的判断操作。
在一示例性的实施方式中,若判断出遍历得到的对象数据不符合预设要求时,则可以将 不符合所述预设要求的对象数据删除,比如,若遍历到的对象数据如下所示:
"type1":null,
"type2":{
"key1":null,
"key2":"O2"}
在该遍历得到的数据中,存在对象数据"type1":null,以及对象数据"key1":null,然而, 这两个对象数据都是不符合预设要求的对象数据,因此,在本实施例中,在发现存在这种对 象数据时,可以将这种对象数据删除,得到如下所示的对象数据:
"type2":{"key2":"O2"}。
作为示例,若所述对象值的类型为基础类型,则直接判定所述对象值符合预设要求。
具体地,所述基础类型包括除数组类型以及字典类型的其他类型,比如,若该对象数据 为Model数据时,则该基础类型可以包括NSString、NSNumber等。
在本实施例中,当对象值为基础类型时,可以直接判定该对象值符合预设要求,而不用 做任何处理操作。
步骤S22,若所述对象数据表中存在预设类型的对象数据,则获取所述预设类型的对象 数据对应的修正数据。
具体地,所述修正数据为用于替换所述预设类型的对象数据的数据。在本实施例中,可 以预先建立一个映射表来存储该预设类型的对象数据与该修正数据的对应关系,这样,在判 定出对象数据表中存在所述预设类型的对象数据时,即可以直接从该映射表中获取修正数据 来替换该数据。
作为示例,本实施例中的修正数据为空值(nil)。
步骤S23,采用所述修正数据替换所述预设类型的对象数据,得到经过修正后的对象数 据。
具体地,在采用修正数据替换所述预设类型的数据时,可以先将对象数据表中包含的所 有对象数据放置在一个新建的对象数据表中,然后在发现存在预设类型的对象数据时,则将 该预设类型的对象数据替换掉,从而可以得到一个不存在预设类型的对象数据的对象数据 表。此时,该对象数据表中将不再包括NSNull类型的内容数据。
本申请实施例中,通过对接收到的预设格式的数据进行检测,并在检测到所述预设格式 的数据中不存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数 据表,所述对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值;检测 所述对象数据表中是否存在预设类型的对象数据;若所述对象数据表中存在预设类型的对象 数据,则获取所述预设类型的对象数据对应的修正数据;采用所述修正数据替换所述预设类 型的对象数据,得到经过修正后的对象数据。在本申请实施例中,通过在检测到对象数据表 中存在预设类型的对象数据时,即对该对象数据进行修正,从而使得最终得到的对象数据不 会存在所述预设类型的数据,进而可以避免因为存在所述预设类型的数据导致客户端出现崩 溃或者闪退现象,提升客户端的质量。此外,由于本实施例中对于每次要执行的目标数据的 检测是全量的,不存在因为透传数据等原因而漏查。在整个检测的过程中,无需人工干预, 也不需要对透传数据进行理解,业务逻辑也不需要针对该数据部分进行额外开发工作。整个 检测之后得到的数据,可以有效提升数据进入业务逻辑流程之后的有效性和健壮性。
在一示例性的实施方式中,参照图4,所述数据处理方法包括:
步骤S40,对接收到的预设格式的数据进行检测,并在检测到所述预设格式的数据中不 存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数据表,所述 对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值;
步骤S41,检测所述对象数据表中是否存在预设类型的对象数据;
步骤S42,若所述对象数据表中存在预设类型的对象数据,则获取所述预设类型的对象 数据对应的修正数据;
步骤S43,采用所述修正数据替换所述预设类型的对象数据,得到经过修正后的对象数 据。
具体地,上述步骤S40-S43与上述实施例中的步骤S20-S23相同,在本实施例中不再赘 述。
步骤S44,在检测到所述对象数据表中存在预设类型的对象数据,将所述预设类型的对 象数据上报至数据监控系统。
具体地,所述数据监控系统为用于对预设类型的对象数据进行监控的系统,通过该系统 可以有效地对该预设类型的对象数据进行记录与分析,以便可以有效核查服务端的数据健壮 性,从而反向推动服务端提升数据质量。
在本实施例中,通过将预设类型的对象数据上报至数据监控系统,从而可以对线上环境 发现的数据异常,不管是普通数据还是带有透传的数据,均进行记录,进而可以为后续对数 据进行分析和治理提供数据依据,推动服务端、客户端共同提升研发质量,降低错误发生。
需要说明的是,透传的数据指的是由服务端自行下发到客户端,客户端不对其内容进行 理解,也不做任何调整;而是跟随业务处理流程,在向服务端发起必要请求时,附带该数据 部分,直接返还给服务端,并交由服务端进行后续处理。
参阅图5所示,是本申请数据处理装置50一实施例的程序模块图。
本实施例中,所述数据处理装置50包括一系列的存储于存储器上的计算机程序指令, 当该计算机程序指令被处理器执行时,可以实现本申请各实施例的数据处理功能。在一些实 施例中,基于该计算机程序指令各部分所实现的特定的操作,数据处理装置50可以被划分 为一个或多个模块。例如,在图5中,所述数据处理装置50可以被分割成接收模块51、检 测模块52、获取模块53、替换模块54。其中:
接收模块51,用于对接收到的预设格式的数据进行检测,并在检测到所述预设格式的数 据中不存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数据 表,所述对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值;
检测模块52,用于检测所述对象数据表中是否存在预设类型的对象数据;
获取模块53,用于若所述对象数据表中存在预设类型的对象数据,则获取所述预设类型 的对象数据对应的修正数据;
替换模块54,用于采用所述修正数据替换所述预设类型的对象数据,得到经过修正后的 对象数据。
在一示例性的实施方式中,所述检测模块52,还用于递归遍历所述对象数据表中的对象 数据,并将遍历到的对象数据作为目标对象数据,对每一个所述目标对象数据执行以下目标 对象数据的检测操作:
基于所述目标对象数据中的对象值确定是否存在所述预设类型的对象数据。
在一示例性的实施方式中,所述检测模块52,还用于判断所述目标对象数据中的对象值 的类型是否为预设类型;
若所述目标对象数据中的对象值的类型为所述预设类型,则判断所述对象值是否符合预 设要求,并根据判断结果确定是否存在所述预设类型的对象数据,其中,在所述判断结果为 所述对象值不符合预设要求时,确定存在所述预设类型的对象数据。
在一示例性的实施方式中,所述检测模块52,还用于若所述对象值的类型为数组类型, 则遍历所述对象值中的每一个元素,并基于遍历得到的每一个元素判断所述对象值是否符合 预设要求;
若所述对象值的类型为字典类型,则遍历所述对象值中的每一个对象数据,并基于遍历 得到的每一个对象数据判断所述对象值是否符合预设要求;
若所述对象值的类型为基础类型,则直接判定所述对象值符合预设要求。
在一示例性的实施方式中,所述数据处理装置50还包括删除模块。
所述删除模块,用于若判断出遍历得到的元素不符合预设要求时,则将不符合所述预设 要求的元素删除。
所述删除模块,还用于若判断出遍历得到的对象数据不符合预设要求时,则将不符合所 述预设要求的对象数据删除。
在一示例性的实施方式中,所述数据处理装置50还包括输出模块。
所述输出模块,用于在检测到所述预设格式的数据中存在不符合预设校验规则的数据, 输出错误信息。
在一示例性的实施方式中,所述数据处理装置50还包括上报模块。
所述上报模块,用于在检测到所述对象数据表中存在预设类型的对象数据,将所述预设 类型的对象数据上报至数据监控系统。
本申请实施例中,通过对接收到的预设格式的数据进行检测,并在检测到所述预设格式 的数据中不存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数 据表,所述对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值;检测 所述对象数据表中是否存在预设类型的对象数据;若所述对象数据表中存在预设类型的对象 数据,则获取所述预设类型的对象数据对应的修正数据;采用所述修正数据替换所述预设类 型的对象数据,得到经过修正后的对象数据。在本申请实施例中,通过在检测到对象数据表 中存在预设类型的对象数据时,即对该对象数据进行修正,从而使得最终得到的对象数据不 会存在所述预设类型的数据,进而可以避免因为存在所述预设类型的数据导致客户端出现崩 溃或者闪退现象,提升客户端的质量。此外,由于本实施例中对于每次要执行的目标数据的 检测是全量的,不存在因为透传数据等原因而漏查。在整个检测的过程中,无需人工干预, 也不需要对透传数据进行理解,业务逻辑也不需要针对该数据部分进行额外开发工作。整个 检测之后得到的数据,可以有效提升数据进入业务逻辑流程之后的有效性和健壮性。
图6示意性示出了根据本申请实施例的适于实现数据处理方法的计算机设备10的硬件 架构示意图。本实施例中,计算机设备10是一种能够按照事先设定或者存储的指令,自动 进行数值计算和/或信息处理的设备。例如,可以是平板电脑、笔记本电脑、台式计算机、 机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个 服务器所组成的服务器集群)等。如图6所示,计算机设备10至少包括但不限于:可通过 系统总线相互通信链接存储器120、处理器121、网络接口123。其中:
存储器120至少包括一种类型的计算机可读存储介质,该可读存储介质可以是易失性的, 也可以是非易失性的,具体而言,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例 如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、 只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、 磁性存储器、磁盘、光盘等。在一些实施例中,存储器120可以是计算机设备10的内部存 储模块,例如该计算机设备10的硬盘或内存。在另一些实施例中,存储器120也可以是计 算机设备10的外部存储设备,例如该计算机设备10上配备的插接式硬盘,智能存储卡(Smart MediaCard,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card) 等。当然,存储器120还可以既包括计算机设备10的内部存储模块也包括其外部存储设备。 本实施例中,存储器120通常用于存储安装于计算机设备10的操作系统和各类应用软件, 例如数据处理方法的程序代码等。此外,存储器120还可以用于暂时地存储已经输出或者将 要输出的各类数据。
处理器121在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、 控制器、微控制器、微处理器、或其它数据处理芯片。该处理器121通常用于控制计算机设 备10的总体操作,例如执行与计算机设备10进行数据交互或者通信相关的控制和处理等。 本实施例中,处理器121用于运行存储器120中存储的程序代码或者处理数据。
网络接口123可包括无线网络接口或有线网络接口,该网络接口123通常用于在计算机 设备10与其它计算机设备之间建立通信链接。例如,网络接口123用于通过网络将计算机 设备10与外部终端相连,在计算机设备10与外部终端之间的建立数据传输通道和通信链接 等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线 网络。
需要指出的是,图6仅示出了具有部件120~122的计算机设备,但是应理解的是,并不 要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器120中的数据处理方法可以被分割为一个或者多个程序模 块,并由一个或多个处理器(本实施例为处理器121)所执行,以完成本申请。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有计算机 程序,计算机程序被处理器执行时实现实施例中的数据处理方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD 或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储 器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁 性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部 存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可 以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡 (Smart MediaCard,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外 部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统 和各类应用软件,例如实施例中的数据处理方法的程序代码等。此外,计算机可读存储介质 还可以用于暂时地存储已经输出或者将要输出的各类数据。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也 可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于 一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分 或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动 的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助 软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实 现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所 述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实 施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory, ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参 照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以 对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
对接收到的预设格式的数据进行检测,并在检测到所述预设格式的数据中不存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数据表,所述对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值;
检测所述对象数据表中是否存在预设类型的对象数据;
若所述对象数据表中存在预设类型的对象数据,则获取所述预设类型的对象数据对应的修正数据;
采用所述修正数据替换所述预设类型的对象数据,得到经过修正后的对象数据。
2.根据权利要求1所述的数据处理方法,其特征在于,所述检测所述对象数据表中是否存在预设类型的对象数据包括:
递归遍历所述对象数据表中的对象数据,并将遍历到的对象数据作为目标对象数据,对每一个所述目标对象数据执行以下目标对象数据的检测操作:
基于所述目标对象数据中的对象值确定是否存在所述预设类型的对象数据。
3.根据权利要求2所述的数据处理方法,其特征在于,所述基于所述目标对象数据中的对象值确定是否存在所述预设类型的对象数据包括:
判断所述目标对象数据中的对象值的类型是否为预设类型;
若所述目标对象数据中的对象值的类型为所述预设类型,则判断所述对象值是否符合预设要求,并根据判断结果确定是否存在所述预设类型的对象数据,其中,在所述判断结果为所述对象值不符合预设要求时,确定存在所述预设类型的对象数据。
4.根据权利要求3所述的数据处理方法,其特征在于,所述判断所述对象值是否符合预设要求包括:
若所述对象值的类型为数组类型,则遍历所述对象值中的每一个元素,并基于遍历得到的每一个元素判断所述对象值是否符合预设要求;
若所述对象值的类型为字典类型,则遍历所述对象值中的每一个对象数据,并基于遍历得到的每一个对象数据判断所述对象值是否符合预设要求;
若所述对象值的类型为基础类型,则直接判定所述对象值符合预设要求。
5.根据权利要求4所述的数据处理方法,其特征在于,所述基于遍历得到的每一个元素判断所述对象值是否符合预设要求的步骤之后,还包括:
若判断出遍历得到的元素不符合预设要求时,则将不符合所述预设要求的元素删除;
所述基于遍历得到的每一个对象数据判断所述对象值是否符合预设要求的步骤之后,还包括:
若判断出遍历得到的对象数据不符合预设要求时,则将不符合所述预设要求的对象数据删除。
6.根据权利要求1至5任一项所述的数据处理方法,其特征在于,所述方法还包括:
在检测到所述预设格式的数据中存在不符合预设校验规则的数据,输出错误信息。
7.根据权利要求1至5任一项所述的数据处理方法,其特征在于,所述方法还包括:
在检测到所述对象数据表中存在预设类型的对象数据,将所述预设类型的对象数据上报至数据监控系统。
8.一种数据处理装置,其特征在于,包括:
接收模块,用于对接收到的预设格式的数据进行检测,并在检测到所述预设格式的数据中不存在不符合预设校验规则的数据时,将所述预设格式的数据反序列化得到对象数据表,所述对象数据表包括至少一个对象数据,每个对象数据包括对象属性和对象值;
检测模块,用于检测所述对象数据表中是否存在预设类型的对象数据;
获取模块,用于若所述对象数据表中存在预设类型的对象数据,则获取所述预设类型的对象数据对应的修正数据;
替换模块,用于采用所述修正数据替换所述预设类型的对象数据,得到经过修正后的对象数据。
9.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的数据处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110083088.8A CN112783581A (zh) | 2021-01-21 | 2021-01-21 | 数据处理方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110083088.8A CN112783581A (zh) | 2021-01-21 | 2021-01-21 | 数据处理方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112783581A true CN112783581A (zh) | 2021-05-11 |
Family
ID=75758091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110083088.8A Pending CN112783581A (zh) | 2021-01-21 | 2021-01-21 | 数据处理方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783581A (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216917A1 (en) * | 2004-03-23 | 2005-09-29 | Srivatsa Krishnaswamy | Method and system for data object transformation |
US20120159446A1 (en) * | 2010-12-21 | 2012-06-21 | Sap Ag | Verification framework for business objects |
CN103970855A (zh) * | 2014-05-06 | 2014-08-06 | 车智互联(北京)科技有限公司 | 一种数据处理设备和方法 |
CN106775696A (zh) * | 2016-12-08 | 2017-05-31 | 蓝信工场(北京)科技有限公司 | 数据处理方法及装置 |
CN107066411A (zh) * | 2017-04-13 | 2017-08-18 | 深圳市酷开网络科技有限公司 | 数据传输方法、装置及计算机可读存储介质 |
CN108694045A (zh) * | 2017-02-14 | 2018-10-23 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN109165209A (zh) * | 2018-08-14 | 2019-01-08 | 上海达梦数据库有限公司 | 数据库中对象类型的数据校验方法、装置、设备及介质 |
CN110769061A (zh) * | 2019-10-24 | 2020-02-07 | 华为技术有限公司 | 一种数据同步的方法及设备 |
CN110968548A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 一种数据修正方法、装置、存储介质及处理器 |
WO2020140679A1 (zh) * | 2019-01-03 | 2020-07-09 | 深圳壹账通智能科技有限公司 | 接口对接方法、装置、计算机设备和存储介质 |
CN111596905A (zh) * | 2020-05-09 | 2020-08-28 | 远光软件股份有限公司 | 生成java对象的方法、装置、存储介质及终端 |
WO2020205763A1 (en) * | 2019-04-03 | 2020-10-08 | Unitedhealth Group Incorporated | Managing data objects for graph-based data structures |
-
2021
- 2021-01-21 CN CN202110083088.8A patent/CN112783581A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216917A1 (en) * | 2004-03-23 | 2005-09-29 | Srivatsa Krishnaswamy | Method and system for data object transformation |
US20120159446A1 (en) * | 2010-12-21 | 2012-06-21 | Sap Ag | Verification framework for business objects |
CN103970855A (zh) * | 2014-05-06 | 2014-08-06 | 车智互联(北京)科技有限公司 | 一种数据处理设备和方法 |
CN106775696A (zh) * | 2016-12-08 | 2017-05-31 | 蓝信工场(北京)科技有限公司 | 数据处理方法及装置 |
CN108694045A (zh) * | 2017-02-14 | 2018-10-23 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN107066411A (zh) * | 2017-04-13 | 2017-08-18 | 深圳市酷开网络科技有限公司 | 数据传输方法、装置及计算机可读存储介质 |
CN109165209A (zh) * | 2018-08-14 | 2019-01-08 | 上海达梦数据库有限公司 | 数据库中对象类型的数据校验方法、装置、设备及介质 |
CN110968548A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 一种数据修正方法、装置、存储介质及处理器 |
WO2020140679A1 (zh) * | 2019-01-03 | 2020-07-09 | 深圳壹账通智能科技有限公司 | 接口对接方法、装置、计算机设备和存储介质 |
WO2020205763A1 (en) * | 2019-04-03 | 2020-10-08 | Unitedhealth Group Incorporated | Managing data objects for graph-based data structures |
CN110769061A (zh) * | 2019-10-24 | 2020-02-07 | 华为技术有限公司 | 一种数据同步的方法及设备 |
CN111596905A (zh) * | 2020-05-09 | 2020-08-28 | 远光软件股份有限公司 | 生成java对象的方法、装置、存储介质及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6720144B2 (ja) | 条件付き検証規則 | |
US10387236B2 (en) | Processing data errors for a data processing system | |
CN111880740B (zh) | 数据处理方法、装置、计算机系统及可读存储介质 | |
WO2019019640A1 (zh) | 订单信息的模拟处理方法、装置、存储介质和计算机设备 | |
CN110688378B (zh) | 数据库存储过程的迁移方法及系统 | |
CN112765023A (zh) | 测试用例生成方法、装置 | |
WO2019095667A1 (zh) | 数据库数据采集方法、应用服务器及计算机可读存储介质 | |
CN112039900A (zh) | 网络安全风险检测方法、系统、计算机设备和存储介质 | |
CN112199342A (zh) | 一种文件上传方法、装置及计算机设备 | |
WO2019148657A1 (zh) | 关联环境测试方法、电子装置及计算机可读存储介质 | |
US20210365406A1 (en) | Method and apparatus for processing snapshot, device, medium and product | |
CN111694684A (zh) | 存储设备的异常构造方法、装置、电子设备及存储介质 | |
CN108196975B (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
KR20170031004A (ko) | 데이터의 사일런트 커럽션을 감지하는 시스템들 및 그것의 동작 방법들 | |
CN117271645A (zh) | 一种测试数据的处理方法、装置及计算机可读存储介质 | |
CN112783581A (zh) | 数据处理方法、装置 | |
CN111639087A (zh) | 数据库中数据更新方法、装置和电子设备 | |
CN115185778A (zh) | 数据库的监控方法及装置 | |
CN114330278A (zh) | 一种判断返回数据一致性的方法及设备 | |
CN114356404A (zh) | 接口文档生成方法、系统和计算机可读存储介质 | |
CN114003172A (zh) | 存储容量校正方法、装置、计算机设备以及存储介质 | |
CN111984451A (zh) | 表格数据的纠错方法、系统、设备及存储介质 | |
CN112416891A (zh) | 数据检测方法、装置、电子设备及可读存储介质 | |
CN110888874A (zh) | 一种通过Excel创建表单的装置、方法及存储介质 | |
CN115543485B (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 |