CN111756779A - 数据序列化处理方法、装置及计算机*** - Google Patents
数据序列化处理方法、装置及计算机*** Download PDFInfo
- Publication number
- CN111756779A CN111756779A CN201910234011.9A CN201910234011A CN111756779A CN 111756779 A CN111756779 A CN 111756779A CN 201910234011 A CN201910234011 A CN 201910234011A CN 111756779 A CN111756779 A CN 111756779A
- Authority
- CN
- China
- Prior art keywords
- information
- data
- element value
- rule
- serialization
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了数据序列化处理方法、装置及计算机***,所述方法包括:获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。通过本申请实施例,能够更准确地进行数据的序列化与反序列化,确保运行态正常。
Description
技术领域
本申请涉及JSON数据处理技术领域,特别是涉及数据序列化处理方法、装置及计算机***。
背景技术
JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。在普通的网络应用中,不管是服务器端还是客户端,解析XML代码会非常麻烦,而JSON更加满足数据传输解析的要求,采用JSON格式的方式进行数据的传输,不仅方便传输解析,还特别易于人阅读和编写。但是,JSON格式的数据通常是以键值对的形式存在,这种形式的数据不利于进行持久化保存,因此,在需要进行持久化保存时,通常需要首先进行序列化处理,将JSON对象转换为字符串。在需要使用这种数据时,在进行反序列化处理,将字符串转换为JSON对象。但是,在实际应用中,在数据进行序列化与反序列化的过程中,可能会出现数据无法完全还原,或者运行态异常的情况。
因此,如何更准确地进行数据的序列化与反序列化,确保运行态正常,成为需要本领域技术人员解决的技术问题。
发明内容
本申请提供了数据序列化处理方法、装置及计算机***,能够更准确地进行数据的序列化与反序列化,确保运行态正常。
本申请提供了如下方案:
一种业务规则信息处理方法,包括:
规则中心服务器接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
一种数据序列化处理方法,包括:
获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
一种业务规则信息处理装置,应用于规则中心服务器,包括:
规则信息接收单元,用于接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
序列化处理单元,用于在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
反序列化处理单元,用于在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
一种数据序列化处理装置,包括:
数据获得单元,用于获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
序列化处理单元,用于在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
反序列化处理单元,用于在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
一种计算机***,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
一种计算机***,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
通过本申请实施例,提供了新的JSON数据序列化及反序列化方式,在具体对JSON数据进行序列化时,可以将集合中元素的元素值数据类型信息保留在序列化信息中,这样,在反序列化时,能够进行更准确的JSON数据还原,降低运行状态下发生异常的概率。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的***架构的示意图;
图2是本申请实施例提供的第一方法的流程图;
图3是本申请实施例提供的第二方法的流程图;
图4是本申请实施例提供的第一装置的示意图;
图5是本申请实施例提供的第二装置的示意图;
图6是本申请实施例提供的计算机***的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请发明人在实现本申请的过程中发现,现有技术中之所以在对JSON数据进行序列化以及反序列化的过程中出现错误或者运行态异常的情况,其中一方面的原因在于,JSON是一种弱类型语言,在集合元素值类型不确定的场景下,数据持久化过程中,如果按照传统的方式执行序列化,则数据的类型信息会被擦除,这样,在反序列化过程中,如果涉及到单独看数据本身无法确定类型的情况,则可能无法完全还原数据,或者无法保证数据类型的准确性。例如,如果某数据是数字16,在预先无法获知该数据实际类型的情况下,会无法确定出该数据是int类型还是long类型,这是因为这两种类型的数据都是整数型,区别仅在于能够支持的最大数据长度不同。因此,在序列化的过程中,将类型信息擦除后,在进行反序列化时,遇到上述数据,就可能会出现无法还原或者类型错误等情况。例如,原来的JSON数据中,某数据实际上是long类型,但是,还原时,可能会认为是int型,等等。还原之后的数据通常是用于在具体的运行环境中执行时使用,而Java等程序在运行过程中通常是强类型依赖,在无法确定具体信息的类型信息的情况下,或者类型错误的情况下,可能会出现运行态异常。
其中,上述“集合元素值类型不确定的场景”可能在多种实际的应用***中出现,例如,如图1所示,在“新零售”等商品对象信息服务***中,由于通常是由平台方进行统一的运营,涉及到众多的线下实体店铺,还可能会涉及到商品对象供应商,服务提供方(例如,配送等服务的提供方),等等,***中会存在多种业务流程。而具体业务链路中的节点众多,业务链路很长,因此,一旦涉及到规则(如,运费计算规则,实体店铺的履约服务规则,实体店铺的商品上架规则,等)调整等需求,如果规则是写死在业务方客户端的代码中,则可能会需要对整个业务链路中多个业务方客户端的代码进行修改,工作量大,且容易出错,还可能会影响到业务***的正常运行。因此,为了便于对各种不同场景下的业务规则等进行动态配置,而不是写死在代码中,可以在***中提供规则中心服务器,具体的业务方在需要修改或者新增业务规则时,可以在规则中心进行配置,然后规则中心对具体的规则信息进行保存。具体的业务处理过程中,业务方客户端可以通过调用规则中心保存的规则,来实现具体的规则判断,以进行对应的业务逻辑处理。例如,包括“免运费”的条件判断,等等。在上述场景中,业务方具体提交的业务规则中的判断条件等信息就可以通过JSON格式的键值对形式来进行表达,例如,<订单数量,1>,等等。而在对上述规则信息进行持久化保存时,就需要进行序列化处理。
在传统的JSON数据中,集合内元素的value值的数据类型通常是显示声明的,例如Map<String,Long>,也就是说,具体集合内每个元素的类型信息都默认为long型。但是,由于规则中心中可能出现的条件是由具体的业务方根据实际的需求进行配置的,对于同一个元素(例如,订单数量,订单编号,等等)而言,在不同的业务方配置的不同业务规则中,具体所需的数据类型可能会多种多样,无法对预先进行穷举,因此,为了便于业务方对规则信息进行配置,并不会对元素的数据类型进行固定的配置,而是允许配置任意类型的数据。例如,如果某规则中涉及到“订单数量”信息,具体配置的值可能是int型的数据,也可能是long类型的数据,等等。
为了能够支持上述情况,具体的规则中心定义了以下数据集合:Map<String,Object>,其中,“Object”并不是一种具体的数据类型,而是代表可以进行任意的配置。但是,现有技术中并不存在使用Map<String,Object>的方式进行表达的情况,因此,现有的序列化实现方式中也并没有考虑该情况。这就使得用Map<String,Object>进行表达时,虽然关于集合内具体元素的数据类型信息,对于具体的业务方而言是已知的,提交到规则中心的规则信息中也包含类型信息,但是,在进行序列化的过程中,如果使用现有技术中的序列化方案,就会将上述类型信息擦除。而int类型与long类型的数据之间,甚至是其他类型的数据之间都可能会具有高度的相似性,无法直接通过数值本身确定一串数值具体是int类型还是long类型,或者是其他类型,以至于在反序列化时,就会无法正确进行数据还原。
例如,某个JSON数据集合为Map<String,Object>,其中的元素表达为:
Map<String,Object>map=new HashMap<>(16);
map.put(“a”,1);
map.put(“b”,2L);
map.put(“c”,“300”);
map.put(“d”,40.00);
也就是说,在上述集合中,包括四个元素,分别为a,b,c,d,其中,a对应的元素值为1,数据类型为默认的int型(因为JSON数据中对该元素值进行表达时未带有L后缀,也没有双引号,元素值中也不带有小数点);b对应的元素值为2,数据类型为long型(因为JSON数据中对该元素值进行表达时带有L后缀);c对应的元素值为300,数据类型为字符型(因为JSON数据中对该元素值进行表达时带有双引号);c对应的元素值为40.00,数据类型为浮点型(因为JSON数据中对该元素值进行表达时带有小数点)。
但是,在现有技术中的序列化方案中,在将上述JSON数据进行序列化之后得到的结果将会表达为:
可见,在进行序列化的过程中,已经将元素b的元素值数据类型信息“L”擦除了,使得无法确认元素b的数据类型。在进行反序列化时,只能统一按照int类型来处理,例如,具体反序列化得到的关于元素b的对象为element(key:a,value:1,valueClass:java.lang.integer),其中,“java.lang.integer”是预先为数据类型定义的类的名称,与具体的数据类型相对应。但是,这显然会使得还原出的数据出现数据类型错误,将本应是long型的元素值表达为int类型。因此,在运行时也可能会出现异常。
针对上述问题,在本申请实施例中,提供了新的序列化方法,在该方法中,可以将JSON数据中包含的元素值的数据类型信息保留在序列化后的信息中,这样,在反序列化时,就能够根据这种数据类型信息,进行正确的JSON数据还原。
其中,具体在序列化信息中保留元素值数据类型信息的方式可以有多种,例如,在一种方式下,可以将一个JSON键值对表达为由三个字段组成的字符串,其中,上述三个字段分别可以为,元素名称(field),元素值(type),元素值(value)数据类型。例如,在前述JSON数据集合为Map<String,Object>的例子中,利用本申请实施例所提供的方案,序列化之后的信息可以为:
其中,java.lang.integer、java.lang.long等都可以是预先为具体的数据类型定义的类的名称。
可见,在本申请实施例中,序列化后的信息中,每个元素、元素值对应的JSON数据键值对,可以由field、type、value这三个字段的信息来表达,这样,就可以在序列化信息中保留元素值的数据类型信息。这样,在具体进行反序列化时,就可以根据这种type字段的信息,确定元素值的数据类型,进而进行更准确的数据还原。
下面对更为具体的实现方案进行总结介绍。
实施例一
在该实施例一中,主要结合上述商品对信息服务***中的规则中心服务器的应用场景进行介绍。具体的,该实施例一提供了一种业务规则信息处理方法,参见图2,该方法具体可以包括:
S201:规则中心服务器接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
业务规则配置信息具体可以是由业务方来提供,具体实现时,还可以提供可选的元素标识信息以及对应的含义信息,以用于通过为所述元素标识设定元素值的方式对所述条件信息进行描述;其中,同一元素在不同的条件中可设定不同数据类型的元素值。例如,具体的元素标识可以包括orderid,代表订单编号,ordercount代笔订单数量,等等。其中,多种不同的业务规则中可能都会涉及到ordercount等元素,而根据具体场景、业务内容等不同,可能出现的订单数量最大值范围可能不同,因此,业务方在设定具体的业务规则时,可能会将该元素对应的元素值的数据类型设定为int型,或者long型,等等。
其中,所述业务方客户端具体可以包括商品对象信息服务***中的业务方客户端。所述业务规则信息具体可以包括多种,例如,可以是用于对所述商品对象信息服务***中生成的订单进行相关资源信息计算的规则。具体如,单用户单日订单数量大于1时,则免运费,或者,订单金额大于某数值时,优惠5元,等等。或者,业务规则也可以包括用于对所述商品对象信息服务***中提供履约服务的实体店铺进行履约服务控制的规则。例如,如果用户距离某实体店铺在3km之内,则提供半小时送达服务,等等。或者,具体的业务规则还可以包括根据所述商品对象信息服务***中具有商品对象上架需求的实体店铺进行上架货位控制的规则。例如,如果商品对象ID为1000~2000,则上架到货位A,等等。具体的业务方客户端在执行具体的业务逻辑的过程中,都可能会需要使用上述规则,只需要在业务方客户端代码中写入规则的ID等标识,则可以从规则中心服务器获得具体的规则信息。
由于上述具体的业务规则是保存在规则中心,而不是写死在业务代码中,因此,在需要对所述业务方客户端中所需使用的业务规则进行调整时,可以通过对所述规则中心服务器中的业务规则进行调整,或者新增业务规则信息方式实现。
S202:在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在接收到具体的业务规则信息之后,可以进行持久化保存在规则中心服务器中,在持久化的过程中就可以对JSON数据进行序列化处理。在本申请实施例中,可以在序列化信息中保存所述元素值的数据类型信息。
其中,为了能够保存数据类型信息,可以有多种方式。例如,其中一种方式下,可以将所述序列化信息表达为包括元素名称字段、元素值字段以及元素值类型字段的字符串;此时,可以根据所述JSON数据确定各字段上的信息,并根据所述各字段上的信息生成对应的字符串。具体可以参见前文所述的例子。
S203:在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
在按照上述方式进行了数据的序列化处理后,在具体的规则信息被使用时,还可以进行反序列化处理,以便进行JSON数据还原。其中,由于本申请实施例中在序列化后的信息中保留的参数值的数据类型信息,因此,能够进行更准确的数据还原。具体的,在通过多个字段上的信息组成的字符串表达序列化信息,并且在其中包括用于标识参数值类型的字段的实现方式下,在进行反序列化时,可以通过对所述字符串中对应字段上的信息进行识别,确定所述元素值的数据类型信息,然后进行数据还原。
总之,通过本申请实施例,提供了新的JSON数据序列化及反序列化方式,在具体对JSON数据进行序列化时,可以将集合中元素的元素值数据类型信息保留在序列化信息中,这样,在反序列化时,能够进行更准确的JSON数据还原,降低运行状态下发生异常的概率。
在实际应用中,在其他应用场景中也可能存在集合元素值类型不确定的数据结构,在这些场景中,都可以利用本申请实施例中提供的方案进行数据的序列化与反序列化处理,以实现数据的正确还原。下面对该方案进行介绍。
实施例二
该实施例二提供了一种数据序列化处理方法,具体的,参见图3,该方法具体可以包括:
S301:获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
其中,同一元素在不同的数据中可设定不同数据类型的元素值。
S302:在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
其中,所述序列化信息可以表达为包括元素名称字段、元素值字段以及元素值类型字段的字符串;此时,在序列化信息中保存所述元素值的数据类型信息时,具体可以根据所述JSON数据确定各字段上的信息,并根据所述各字段上的信息生成对应的字符串。
S303:在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
其中,具体在根据所述元素值的数据类型信息进行数据还原时,可以通过对所述字符串中对应字段上的信息进行识别,确定所述元素值的数据类型信息,并进行数据还原。
其中,关于上述实施例中的未详述部分,可以参见本申请实施例中其他部分的记载,这里不再赘述。
与实施例一相对应,本申请实施例还提供了一种业务规则信息处理装置,具体的,该装置可以应用于规则中心服务器,参见图4,该装置可以包括:
规则信息接收单元401,用于接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
序列化处理单元402,用于在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
反序列化处理单元403,用于在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
具体实现时,该装置还可以包括:
元素信息提供单元,用于提供可选的元素标识信息以及对应的含义信息,以用于通过为所述元素标识设定元素值的方式对所述条件信息进行描述;其中,同一元素在不同的条件中可设定不同数据类型的元素值。
其中,所述业务方客户端包括商品对象信息服务***中的业务方客户端。
所述业务规则信息包括:用于对所述商品对象信息服务***中生成的订单进行相关资源信息计算的规则。
或者,所述业务规则信息包括:用于对所述商品对象信息服务***中提供履约服务的实体店铺进行履约服务控制的规则。
或者,所述业务规则信息包括:根据所述商品对象信息服务***中具有商品对象上架需求的实体店铺进行上架货位控制的规则。
另外,该装置还可以包括:
规则调整单元,用于在需要对所述业务方客户端中所需使用的业务规则进行调整时,通过对所述规则中心服务器中的业务规则进行调整,或者新增业务规则信息方式实现。
与实施例二相对应,本申请实施例还提供了一种数据序列化处理装置,参见图5,该装置具体可以包括:
数据获得单元501,用于获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
序列化处理单元502,用于在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
反序列化处理单元503,用于在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
其中,同一元素在不同的数据中可设定不同数据类型的元素值。
具体的,所述序列化信息表达为包括元素名称字段、元素值字段以及元素值类型字段的字符串;
所述序列化处理单元具体可以用于:
根据所述JSON数据确定各字段上的信息,并根据所述各字段上的信息生成对应的字符串。
此时,所述反序列化处理单元具体可以包括:
通过对所述字符串中对应字段上的信息进行识别,确定所述元素值的数据类型信息,并进行数据还原。
另外,本申请实施例还提供了一种计算机***,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
以及另一种计算机***,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
其中,图6示例性的展示出了计算机***的架构,具体可以包括处理器610,视频显示适配器611,磁盘驱动器612,输入/输出接口613,网络接口614,以及存储器620。上述处理器610、视频显示适配器611、磁盘驱动器612、输入/输出接口613、网络接口614,与存储器620之间可以通过通信总线630进行通信连接。
其中,处理器610可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器620可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器620可以存储用于控制计算机***600运行的操作***621,用于控制计算机***600的低级别操作的基本输入输出***(BIOS)。另外,还可以存储网页浏览器623,数据存储管理***624,以及JSON数据处理***625等等。上述JSON数据处理***625就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器620中,并由处理器610来调用执行。
输入/输出接口613用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口614用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线630包括一通路,在设备的各个组件(例如处理器610、视频显示适配器611、磁盘驱动器612、输入/输出接口613、网络接口614,与存储器620)之间传输信息。
另外,该计算机***600还可以从虚拟资源对象领取条件信息数据库641中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器610、视频显示适配器611、磁盘驱动器612、输入/输出接口613、网络接口614,存储器620,总线630等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的数据序列化处理方法、装置及计算机***,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种业务规则信息处理方法,其特征在于,包括:
规则中心服务器接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
2.根据权利要求1所述的方法,其特征在于,还包括:
提供可选的元素标识信息以及对应的含义信息,以用于通过为所述元素标识设定元素值的方式对所述条件信息进行描述;其中,同一元素在不同的条件中可设定不同数据类型的元素值。
3.根据权利要求1所述的方法,其特征在于,
所述业务方客户端包括商品对象信息服务***中的业务方客户端。
4.根据权利要求3所述的方法,其特征在于,
所述业务规则信息包括:用于对所述商品对象信息服务***中生成的订单进行相关资源信息计算的规则。
5.根据权利要求3所述的方法,其特征在于,
所述业务规则信息包括:用于对所述商品对象信息服务***中提供履约服务的实体店铺进行履约服务控制的规则。
6.根据权利要求3所述的方法,其特征在于,
所述业务规则信息包括:根据所述商品对象信息服务***中具有商品对象上架需求的实体店铺进行上架货位控制的规则。
7.根据权利要求1至6任一项所述的方法,其特征在于,
在需要对所述业务方客户端中所需使用的业务规则进行调整时,通过对所述规则中心服务器中的业务规则进行调整,或者新增业务规则信息方式实现。
8.一种数据序列化处理方法,其特征在于,包括:
获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
9.根据权利要求8所述的方法,其特征在于,
同一元素在不同的数据中可设定不同数据类型的元素值。
10.根据权利要求8所述的方法,其特征在于,
所述序列化信息表达为包括元素名称字段、元素值字段以及元素值类型字段的字符串;
所述在序列化信息中保存所述元素值的数据类型信息,包括:
根据所述JSON数据确定各字段上的信息,并根据所述各字段上的信息生成对应的字符串。
11.根据权利要求8所述的方法,其特征在于,
所述根据所述元素值的数据类型信息进行数据还原,包括:
通过对所述字符串中对应字段上的信息进行识别,确定所述元素值的数据类型信息,并进行数据还原。
12.一种业务规则信息处理装置,其特征在于,应用于规则中心服务器,包括:
规则信息接收单元,用于接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
序列化处理单元,用于在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
反序列化处理单元,用于在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
13.一种数据序列化处理装置,其特征在于,包括:
数据获得单元,用于获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
序列化处理单元,用于在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
反序列化处理单元,用于在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
14.一种计算机***,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
15.一种计算机***,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得JSON格式的数据,所述数据中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述数据进行持久化保存的过程中,对所述数据进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910234011.9A CN111756779B (zh) | 2019-03-26 | 2019-03-26 | 数据序列化处理方法、装置及计算机*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910234011.9A CN111756779B (zh) | 2019-03-26 | 2019-03-26 | 数据序列化处理方法、装置及计算机*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111756779A true CN111756779A (zh) | 2020-10-09 |
CN111756779B CN111756779B (zh) | 2022-07-26 |
Family
ID=72671032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910234011.9A Active CN111756779B (zh) | 2019-03-26 | 2019-03-26 | 数据序列化处理方法、装置及计算机*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111756779B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433787A (zh) * | 2020-11-09 | 2021-03-02 | 北京达佳互联信息技术有限公司 | 目标对象的序列化方法、装置、电子设备及存储介质 |
CN112615773A (zh) * | 2020-12-02 | 2021-04-06 | 海南车智易通信息技术有限公司 | 一种消息处理方法及*** |
CN115563638A (zh) * | 2022-11-15 | 2023-01-03 | 阿里云计算有限公司 | 数据处理方法、***、设备及存储介质 |
WO2023179632A1 (zh) * | 2022-03-21 | 2023-09-28 | 华为技术有限公司 | 一种数据处理方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661391A (zh) * | 2009-09-24 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种对象序列化方法、对象反序列化方法、装置及*** |
US20130117326A1 (en) * | 2011-11-08 | 2013-05-09 | Microsoft Corporation | External serialization and deserialization |
US8874620B1 (en) * | 2011-06-15 | 2014-10-28 | Amazon Technologies, Inc. | Data transfer optimization |
US20150089470A1 (en) * | 2013-09-20 | 2015-03-26 | Oracle International Corporation | Rule-based automatic class generation from a json message |
US20150293764A1 (en) * | 2014-04-10 | 2015-10-15 | Omprakash VISVANATHAN | Method and system to compose and execute business rules |
US20160041894A1 (en) * | 2014-08-11 | 2016-02-11 | Microsoft Corporation | Structured logging and instrumentation framework |
CN108492195A (zh) * | 2018-03-08 | 2018-09-04 | 中国平安人寿保险股份有限公司 | 一种规则引擎包的入参泛化方法、设备及存储介质 |
CN109298954A (zh) * | 2018-09-14 | 2019-02-01 | 北京数聚鑫云信息技术有限公司 | 一种智能调用Dubbo远程服务的方法及装置 |
CN109343836A (zh) * | 2018-08-31 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 数据序列化、数据反序列方法、装置及设备 |
-
2019
- 2019-03-26 CN CN201910234011.9A patent/CN111756779B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661391A (zh) * | 2009-09-24 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种对象序列化方法、对象反序列化方法、装置及*** |
US8874620B1 (en) * | 2011-06-15 | 2014-10-28 | Amazon Technologies, Inc. | Data transfer optimization |
US20130117326A1 (en) * | 2011-11-08 | 2013-05-09 | Microsoft Corporation | External serialization and deserialization |
US20150089470A1 (en) * | 2013-09-20 | 2015-03-26 | Oracle International Corporation | Rule-based automatic class generation from a json message |
US20150293764A1 (en) * | 2014-04-10 | 2015-10-15 | Omprakash VISVANATHAN | Method and system to compose and execute business rules |
US20160041894A1 (en) * | 2014-08-11 | 2016-02-11 | Microsoft Corporation | Structured logging and instrumentation framework |
CN108492195A (zh) * | 2018-03-08 | 2018-09-04 | 中国平安人寿保险股份有限公司 | 一种规则引擎包的入参泛化方法、设备及存储介质 |
CN109343836A (zh) * | 2018-08-31 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 数据序列化、数据反序列方法、装置及设备 |
CN109298954A (zh) * | 2018-09-14 | 2019-02-01 | 北京数聚鑫云信息技术有限公司 | 一种智能调用Dubbo远程服务的方法及装置 |
Non-Patent Citations (2)
Title |
---|
STAMATIOS THEOCHARIS 等: "Rdf serialization from JSON data: The case of JSON data in Diavgeia.gov.gr", 《IISA》 * |
邢四为: "基于JSON的信息交互***的研究与实现", 《万方数据库》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433787A (zh) * | 2020-11-09 | 2021-03-02 | 北京达佳互联信息技术有限公司 | 目标对象的序列化方法、装置、电子设备及存储介质 |
CN112615773A (zh) * | 2020-12-02 | 2021-04-06 | 海南车智易通信息技术有限公司 | 一种消息处理方法及*** |
CN112615773B (zh) * | 2020-12-02 | 2023-02-28 | 海南车智易通信息技术有限公司 | 一种消息处理方法及*** |
WO2023179632A1 (zh) * | 2022-03-21 | 2023-09-28 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN115563638A (zh) * | 2022-11-15 | 2023-01-03 | 阿里云计算有限公司 | 数据处理方法、***、设备及存储介质 |
CN115563638B (zh) * | 2022-11-15 | 2023-04-18 | 阿里云计算有限公司 | 数据处理方法、***、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111756779B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111756779B (zh) | 数据序列化处理方法、装置及计算机*** | |
CN109102151B (zh) | 一种可疑群组识别方法和装置 | |
CN109145238B (zh) | 一种卡片显示方法、装置及移动设备 | |
US11119988B2 (en) | Performing logical validation on loaded data in a database | |
CN105488125A (zh) | 页面访问方法和装置 | |
CN111258998A (zh) | 一种数据校验的方法、装置、介质和电子设备 | |
CN111339187B (zh) | 基于智能合约的数据处理方法、装置、设备和存储介质 | |
CN115795211A (zh) | 一种页面展示方法、装置、***、设备和存储介质 | |
CN110008431B (zh) | 页面组件构建方法、装置、页面生成设备及可读存储介质 | |
CN115268854A (zh) | 业务扩展实现方法、***、电子设备及可读存储介质 | |
CN109873861B (zh) | 跨区块链节点的交互方法及装置、存储介质及电子设备 | |
US10394690B1 (en) | Serialize view model for debugging and application support | |
CN112860762B (zh) | 用于检测时间段重叠的方法和装置 | |
CN114816393A (zh) | 信息生成方法、装置、设备以及存储介质 | |
CN114444478A (zh) | 一种凭证可视化方法、装置、电子设备及存储介质 | |
CN112926008B (zh) | 生成表单页面的方法、装置、电子设备和存储介质 | |
CN113515271A (zh) | 服务代码生成方法、装置、电子设备及可读存储介质 | |
CN115809056B (zh) | 组件复用实现方法、装置和终端设备、可读存储介质 | |
CN114697398B (zh) | 数据处理方法、装置、电子设备、存储介质及产品 | |
CN111506340B (zh) | 业务规则信息处理方法、装置及*** | |
CN111124482B (zh) | 文案信息的配置方法和装置 | |
CN114138397A (zh) | 页面显示方法、装置、电子设备及存储介质 | |
CN113656041A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113608809A (zh) | 组件的布局方法、装置、设备、存储介质及程序产品 | |
CN113505284A (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 |