CN111756779B - 数据序列化处理方法、装置及计算机系统 - Google Patents

数据序列化处理方法、装置及计算机系统 Download PDF

Info

Publication number
CN111756779B
CN111756779B CN201910234011.9A CN201910234011A CN111756779B CN 111756779 B CN111756779 B CN 111756779B CN 201910234011 A CN201910234011 A CN 201910234011A CN 111756779 B CN111756779 B CN 111756779B
Authority
CN
China
Prior art keywords
information
data
rule
service
element 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.)
Active
Application number
CN201910234011.9A
Other languages
English (en)
Other versions
CN111756779A (zh
Inventor
张群辉
潘玉民
冯微峰
夏斐
尹长江
方小瑞
张黎静
马莉亚
段亚军
高鹏程
曾露
祁小彦
沈东佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910234011.9A priority Critical patent/CN111756779B/zh
Publication of CN111756779A publication Critical patent/CN111756779A/zh
Application granted granted Critical
Publication of CN111756779B publication Critical patent/CN111756779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

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数据进行序列化之后得到的结果将会表达为:
Figure BDA0002007584530000071
可见,在进行序列化的过程中,已经将元素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>的例子中,利用本申请实施例所提供的方案,序列化之后的信息可以为:
Figure BDA0002007584530000081
Figure BDA0002007584530000091
其中,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 (9)

1.一种业务规则信息处理方法,其特征在于,包括:
规则中心服务器接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
2.根据权利要求1所述的方法,其特征在于,还包括:
提供可选的元素标识信息以及对应的含义信息,以用于通过为所述元素标识设定元素值的方式对所述条件信息进行描述;其中,同一元素在不同的条件中可设定不同数据类型的元素值。
3.根据权利要求1所述的方法,其特征在于,
所述业务方客户端包括商品对象信息服务系统中的业务方客户端。
4.根据权利要求3所述的方法,其特征在于,
所述业务规则信息包括:用于对所述商品对象信息服务系统中生成的订单进行相关资源信息计算的规则。
5.根据权利要求3所述的方法,其特征在于,
所述业务规则信息包括:用于对所述商品对象信息服务系统中提供履约服务的实体店铺进行履约服务控制的规则。
6.根据权利要求3所述的方法,其特征在于,
所述业务规则信息包括:根据所述商品对象信息服务系统中具有商品对象上架需求的实体店铺进行上架货位控制的规则。
7.根据权利要求1至6任一项所述的方法,其特征在于,
在需要对所述业务方客户端中所需使用的业务规则进行调整时,通过对所述规则中心服务器中的业务规则进行调整,或者新增业务规则信息方式实现。
8.一种业务规则信息处理装置,其特征在于,应用于规则中心服务器,包括:
规则信息接收单元,用于接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
序列化处理单元,用于在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
反序列化处理单元,用于在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
9.一种计算机系统,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收业务规则配置信息,所述业务规则信息中包括通过JSON格式描述的条件信息,所述条件信息中包括至少一个元素,元素对应的元素值,以及所述元素值的数据类型信息;
在对所述业务规则信息进行持久化保存的过程中,对所述JSON格式描述的条件信息进行序列化处理,并在序列化信息中保存所述元素值的数据类型信息;
在所述规则信息被业务方客户端调用,对所述序列化信息进行反序列化处理时,根据所述元素值的数据类型信息进行JSON数据还原。
CN201910234011.9A 2019-03-26 2019-03-26 数据序列化处理方法、装置及计算机系统 Active CN111756779B (zh)

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 CN111756779A (zh) 2020-10-09
CN111756779B true 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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112433787A (zh) * 2020-11-09 2021-03-02 北京达佳互联信息技术有限公司 目标对象的序列化方法、装置、电子设备及存储介质
CN112615773B (zh) * 2020-12-02 2023-02-28 海南车智易通信息技术有限公司 一种消息处理方法及系统
CN116821204A (zh) * 2022-03-21 2023-09-29 华为技术有限公司 一种数据处理方法及装置
CN115563638B (zh) * 2022-11-15 2023-04-18 阿里云计算有限公司 数据处理方法、系统、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
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
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 阿里巴巴集团控股有限公司 数据序列化、数据反序列方法、装置及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130117326A1 (en) * 2011-11-08 2013-05-09 Microsoft Corporation External serialization and deserialization
US9588742B2 (en) * 2013-09-20 2017-03-07 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
US9703675B2 (en) * 2014-08-11 2017-07-11 Microsoft Technology Licensing, Llc Structured logging and instrumentation framework

Patent Citations (5)

* Cited by examiner, † Cited by third party
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
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)

* Cited by examiner, † Cited by third party
Title
Rdf serialization from JSON data: The case of JSON data in Diavgeia.gov.gr;Stamatios Theocharis 等;《IISA》;20161219;全文 *
基于JSON的信息交互系统的研究与实现;邢四为;《万方数据库》;20131008;第2-4章 *

Also Published As

Publication number Publication date
CN111756779A (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
CN111756779B (zh) 数据序列化处理方法、装置及计算机系统
CN109102151B (zh) 一种可疑群组识别方法和装置
US20150293764A1 (en) Method and system to compose and execute business rules
CN109145238B (zh) 一种卡片显示方法、装置及移动设备
US20120254118A1 (en) Recovery of tenant data across tenant moves
CN105488125A (zh) 页面访问方法和装置
CN110008431B (zh) 页面组件构建方法、装置、页面生成设备及可读存储介质
CN112016028A (zh) 一种信息记录方法及装置、信息存储方法、装置及系统
US10394690B1 (en) Serialize view model for debugging and application support
CN114816393A (zh) 信息生成方法、装置、设备以及存储介质
CN111258998A (zh) 一种数据校验的方法、装置、介质和电子设备
CN112926008B (zh) 生成表单页面的方法、装置、电子设备和存储介质
CN110321505B (zh) 数据一致性校验方法及装置
CN111124883A (zh) 一种基于树形表格的测试用例库引入方法、系统及设备
CN114697398B (zh) 数据处理方法、装置、电子设备、存储介质及产品
CN112860762B (zh) 用于检测时间段重叠的方法和装置
CN111506340B (zh) 业务规则信息处理方法、装置及系统
CN113656041A (zh) 数据处理方法、装置、设备及存储介质
CN113448578A (zh) 页面数据处理方法、处理系统、电子设备和可读存储介质
CN113760695A (zh) 一种定位问题代码的方法和装置
CN113656050A (zh) 用于生成版本号的方法和装置
CN111767290A (zh) 用于更新用户画像的方法和装置
US10133758B2 (en) Cell-based database management system
CN110389862B (zh) 一种数据保存方法、装置、设备及存储介质
CN111124482B (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