CN109542541A - 反序列化方法及装置 - Google Patents

反序列化方法及装置 Download PDF

Info

Publication number
CN109542541A
CN109542541A CN201710861263.5A CN201710861263A CN109542541A CN 109542541 A CN109542541 A CN 109542541A CN 201710861263 A CN201710861263 A CN 201710861263A CN 109542541 A CN109542541 A CN 109542541A
Authority
CN
China
Prior art keywords
data
type
data content
character string
json character
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
Application number
CN201710861263.5A
Other languages
English (en)
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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co 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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201710861263.5A priority Critical patent/CN109542541A/zh
Publication of CN109542541A publication Critical patent/CN109542541A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种反序列化方法及装置,涉及数据处理技术领域,为了解决现有技术中,在将JSON字符串反序列化为Java对象的过程中,按照数据精度最高的数据内容的数值类型对JSON字符串中所有原始数据类型为数值类型的数据内容进行反序列化操作时,导致反序列化得到的Java对象中一些数据内容的数据精度发生改变的问题。本发明的方法包括:接收JSON字符串;解析JSON字符串,得到解析结果;确定每个字段名称对应的数据内容的原始数据类型,并判断数据内容中是否包含至少两个原始数据类型为数值类型的数据内容;若是,则按照每个数据内容对应的原始数据类型分别将JSON字符串转换为Java对象。本发明适合应用于将JSON字符串反序列化为Java对象的过程中。

Description

反序列化方法及装置
技术领域
本发明涉及数据处理技术领域,特别是涉及一种反序列化方法及装置。
背景技术
随着互联网技术的日益发展,不同应用***之间的信息交互变得更加频繁。由于开发不同应用***时,所使用的编程语言各不相同,因此不同应用***之间进行信息交互时,需要将待传输的对象转换为一种通用的数据格式,然后再进行数据传输。由于JSON(JavaScript Object Notation,JavaScript对象表示法)结构是一种完全独立于编程语言的轻量级数据交换格式,因此使用JSON结构作为不同应用***之间数据传输的传输载体有很大优势。
目前,在两个不同应用***之间进行信息交互的过程中,当使用JSON结构作为传输载体时,通常是在一个应用***的API(Application Program Interface,应用程序接口)中将待传输对象序列化为JSON结构的字符串,然后将该JSON字符串发送至另一个应用***的API中,并将该JSON字符串反序列化为该应用***所使用的编程语言对应的对象。
发明人在实现上述发明过程中,发现现有技术中在将JSON字符串反序列化为Java对象的过程中,当JSON字符串包含的多个字段中,有至少两个字段对应的数据内容的原始数据类型为数值类型时,需要确定多个数据内容中数据精度最高的数据内容,然后按照这个数据内容对应的数值类型对这个JSON字符串中所有原始数据类型为数值类型的数据内容进行反序列化操作,从而导致反序列化得到的Java对象中一些数值类型的数据内容的数据精度发生改变,因此,通过现有技术将JSON字符串反序列化为Java对象会导致反序列化得到的Java对象的数据精度往往无法满足实际需要。
发明内容
有鉴于此,本发明提供的反序列化方法及装置,主要目的在于克服在将JSON字符串反序列化为Java对象的过程中,按照数据精度最高的数据内容对应的数值类型对JSON字符串中所有原始数据类型为数值类型的数据内容进行反序列化操作,导致反序列化得到的Java对象中一些数据内容的数据精度发生改变的问题,从而提高了反序列化得到的Java对象的准确率。
为了解决上述问题,本发明主要提供如下技术方案:
第一方面,本发明提供了一种反序列化方法,该方法包括:
接收JSON字符串;
解析所述JSON字符串,得到解析结果,其中,所述解析结果中包含多个字段,每个所述字段包括:字段名称及对应的数据内容;
确定每个字段名称对应的数据内容的原始数据类型,并判断所述数据内容中是否包含至少两个原始数据类型为数值类型的数据内容;
若是,则按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象。
可选的,确定每个字段名称对应的数据内容的原始数据类型包括:
采用解析代码识别所述每个字段名称对应的数据内容;
判断所述数据内容是否为数值型数据;
若是,则确定所述数据内容对应的数据精度,并根据所述数据精度确定所述数据内容对应的原始数据类型。
可选的,按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象包括:
逐一获取所述解析结果中包含的每个数据内容及所述每个数据内容对应的原始数据类型;
按照所述每个数据内容对应的原始数据类型,依次对所述每个数据内容进行转换操作,生成所述Java对象。
可选的,所述数值型数据的类型包括:int型、long型、float型、double型。
可选的,在接收JSON字符串之前,所述方法还包括:
在数据传输接口中布署解析代码,其中,所述数据传输接口用于接收所述JSON字符串,所述解析代码用于解析所述JSON字符串,以获得所述JSON字符串中每个字段包括的字段名称及对应的数据内容。
可选的,所述方法还包括:
将所述每个字段名称与对应的原始数据类型的映射关系进行缓存;
当所述数据传输接口接收到与所述JSON字符串结构相同的JSON字符串时,从缓存中获取所述结构相同的JSON字符串包含的每个字段名称对应的数据内容的原始数据类型,以便按照每个数据内容对应的原始数据类型分别将所述结构相同的JSON字符串转换为Java对象。
第二方面,本发明还提供一种反序列化装置,该装置包括:
接收单元,用于接收JSON字符串;
解析单元,用于解析所述接收单元接收的所述JSON字符串,得到解析结果,其中,所述解析结果中包含多个字段,每个所述字段包括:字段名称及对应的数据内容;
确定单元,用于确定所述解析单元解析得到的每个字段名称对应的数据内容的原始数据类型;
判断单元,用于判断所述数据内容中是否包含至少两个原始数据类型为数值类型的数据内容;
转换单元,用于当所述判断单元判断所述数据内容中包含至少两个原始数据类型为数值类型的数据内容时,按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象。
可选的,所述确定单元包括:
识别模块,用于采用解析代码识别所述每个字段名称对应的数据内容;
判断模块,用于判断所述识别模块识别的所述数据内容是否为数值型数据;
确定模块,用于当所述判断模块判断所述数据内容为数值型数据时,确定所述数据内容对应的数据精度,并根据所述数据精度确定所述数据内容对应的原始数据类型。
可选的,所述转换单元包括:
获取模块,用于逐一获取所述解析结果中包含的每个数据内容及所述每个数据内容对应的原始数据类型;
生成模块,用于按照所述获取模块获取的所述每个数据内容对应的原始数据类型,依次对所述每个数据内容进行转换操作,生成所述Java对象。
可选的,所述数值型数据的类型包括:int型、long型、float型、double型。
可选的,所述装置还包括:
布署单元,用于在数据传输接口中布署解析代码,其中,所述数据传输接口用于接收所述JSON字符串,所述解析代码用于解析所述JSON字符串,以获得所述JSON字符串中每个字段包括的字段名称及对应的数据内容。
可选的,所述装置还包括:
缓存单元,用于将所述每个字段名称与对应的原始数据类型的映射关系进行缓存;
获取单元,用于当所述数据传输接口接收到与所述JSON字符串结构相同的JSON字符串时,从缓存中获取所述缓存单元缓存的所述结构相同的JSON字符串包含的每个字段名称对应的数据内容的原始数据类型,以便按照每个数据内容对应的原始数据类型分别将所述结构相同的JSON字符串转换为Java对象。
为了实现上述目的,根据本发明的第三方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的反序列化方法。
为了实现上述目的,根据本发明的第四方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的反序列化方法。
借由上述技术方案,本发明提供的技术方案至少具有下列优点:
本发明提供的一种反序列化方法及装置,本发明能够在解析接收到的JSON字符串之后,根据解析结果确定该JSON字符串中包含的每一个字段的字段名称以及对应的数据内容,并确定每个字段名称对应的数据内容的原始数据类型,当经过判断该JSON字符串中包含的所有数据内容中包含至少两个原始数据类型为数值类型的数据内容时,按照每个数据内容对应的原始数据类型分别对每个数据内容进行反序列化操作,将该JSON字符串转换为Java对象,与现有技术中按照JSON字符串中数据精度最高的数据内容对应的数值类型,对JSON字符串中所有原始数据类型为数值类型的数据内容进行反序列化操作,将JSON字符串转换为Java对象相比,本发明可以保证经过反序列化操作得到的Java对象中的数值类型的数据内容的数据精度与JSON字符串中对应的数据内容的数据精度一致,从而提高了反序列化得到的Java对象的准确率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种反序列化方法流程图;
图2示出了本发明实施例提供的另一种反序列化方法流程图;
图3示出了本发明实施例提供的一种反序列化装置的组成框图;
图4示出了本发明实施例提供的另一种反序列化装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种反序列化方法,如图1所示,该方法在解析接收到的JSON字符串之后,根据解析结果确定JSON字符串中包含的每个字段对应的数据内容的原始数据类型,并按照每个数据内容对应的原始数据类型对每个数据内容进行反序列化操作,,将JSON字符串转换为Java对象,提高了反序列化得到的Java对象的准确率,该方法包括:
101、接收JSON字符串。
其中,在两个由不同编程语言开发的应用***之间进行信息交互时,不能直接将待传输的对象从一个应用***发送到另外一个应用***中,需要将待传输的对象转换为一种通用的数据格式,然后再进行数据传输。JSON(JavaScript Object Notation,JavaScript对象表示法)字符串为以JSON结构存储数据的字符串,由于JSON结构是一种完全独立于编程语言的轻量级数据交换格式,因此使用JSON字符串作为数据传输的传输载体,能够满足在两个不同应用***之间进行信息交互。其中,一个JSON字符串以“{”(左括号)开始、以“}”(右括号)结束,在JSON字符串中包含多个无序排列的字段,每个字段均由字段名称以及该字段名称对应的数据内容组成,以“名称/数据内容”的形式来表达,字段名称和该字段名称对应的数据内容之间用“:”来分隔,多个字段之间用“,”来分隔,例如,一个JSON字符串可以为“{name1:value1,name2:value2,name3:value3}”。其中,字段名称对应的数据可以为字符串、数值、对象、布尔值、NULL值或者数组。
在本发明实施例中,在两个由不同编程语言开发的应用***之间进行信息交互时,当一个应用***将待传输对象转换为JSON字符串,并向另外一个应用***发送该JSON字符串时,另外一个应用***会接收得到该JSON字符串。
102、解析JSON字符串,得到解析结果。
其中,解析结果中包含多个字段,每个字段包括:字段名称及对应的数据内容。
在本发明实施例中,当应用***接收到其他应用***发送的JSON字符串后,并不能直接确定该JSON中包含的具体内容,需要对该JSON字符串进行解析操作,根据得到的解析结果确定该JSON字符串中包含的每一个字段的字段名称以及对应的数据内容。
对于本发明实施例,具体应用场景可以如下所示,但不限于此包括:
应用***A与应用***B之间进行信息交互,第一次应用***A将JSON字符串1发送至应用***B中,应用***B接收得到JSON字符串1,并解析JSON字符串1,从而根据解析结果确定JSON字符串1中包含的每个字段的字段名称以及对应的数据内容。其中,解析JSON字符串1得到的解析结果为{Local:hebei,Channel:CCTV-1,allPeopleCount:123001,allPlayTime:20023.12},根据解析结果确定JSON字符串1中包含4个字段,分别为字段1:字段名称“Local”,对应的数据内容“hebei”;字段2:字段名称“Channel”,对应的数据内容“CCTV-1”;字段3:字段名称“allPeopleCount”,对应的数据内容“123001”;字段4:字段名称“allPlayTime”,对应的数据内容“20023.12”,JSON字符串1中具体记录的内容为所在地域为河北的用户观看CCTV-1的总人数为123001人,观看的总时长为20023.12小时。第二次应用***A将JSON字符串2发送至应用***B中,应用***B接收得到JSON字符串2,并解析JSON字符串2,从而根据解析结果确定JSON字符串2中包含的每一个字段的字段名称以及对应的数据内容。其中,解析JSON字符串2得到的解析结果为{Local:shandong,Channel:CCTV-5,allPeopleCount:135002,allPlayTime:19073.52},根据解析结果确定JSON字符串2中包含4个字段,字段1:字段名称“Local”,对应的数据数据“shandong”;字段2:字段名称“Channel”,对应的数据内容“CCTV-5”;字段3:字段名称“allPeopleCount”,对应的数据内容“135002”;字段4:字段名称“allPlayTime”,对应的数据内容“19073.52”,JSON字符串2中具体记录的内容为所在地域为山东的用户观看CCTV-5的总人数为135002人,观看的总时长为19073.52小时。
需要进行说明的是,上述实施例提及的JSON字符串中包含的字段的数量、每一个字段的字段名称以及对应的数据内容仅为便于表达,在实际应用过程中,JSON字符串中包含的字段数量可以为任意数值、每一个字段的字段名称以及对应的数据内容可以为任意内容。
103、确定每个字段名称对应的数据内容的原始数据类型,并判断数据内容中是否包含至少两个原始数据类型为数值类型的数据内容。
其中,原始数据类型可以包括数值类型、字符串类型、布尔值类型、对象类型、NULL值类型以及数组数据类型等。其中,根据原始数据类型为数值类型的数据内容的数据精度,可以将数值类型具体分为:int型、long型、float型、double型等,数据精度是指当某个数据内容为具体一个数值时,这个数值的有效位数,对于整数形式的数值而言,有效位数越多代表对应的数据精度越高;对于非整数形式的数值而言,小数点后有效位数越多代表对应的数据精度越高。
在本发明实施例中,在步骤102解析JSON字符串,根据得到的解析结果确定该JSON字符串中包含的每一个字段的字段名称以及对应的数据内容后,确定每个字段名称对应的数据内容的原始数据类型,并且根据确定的结果判断该JSON字符串中包含的所有数据内容中是否包含至少两个原始数据类型为数值类型的数据内容。
例如,在前述实施例中接收得到的JSON字符串1,解析JSON字符串1后,根据解析结果确定JSON字符串1中包含4个字段,分别为字段1:字段名称“Local”,对应的数据内容“hebei”;字段2:字段名称“Channel”,对应的数据内容“CCTV-1”;字段3:字段名称“allPeopleCount”,对应的数据内容“123001”;字段4:字段名称“allPlayTime”,对应的数据内容“20023.12”,确定每个字段名称对应的数据内容的原始数据类型:字段名称“Local”对应的数据内容“hebei”的原始数据类型为字符串类型:string型、字段名称“Channel”对应的数据内容“CCTV-1”的原始数据类型为字符串类型:string型、字段名称“allPeopleCount”对应的数据内容“123001”的原始数据类型为数值类型:int型、字段名称“allPlayTime”对应的数据内容“20023.12”的原始数据类型为数值类型:float型。在确定每个字段名称对应的数据内容的原始数据类型后,判断JSON字符串1中包含的所有数据内容中是否至少包含两个原始数据类型为数值类型的数据内容。
104、若是,则按照每个数据内容对应的原始数据类型分别将JSON字符串转换为Java对象。
在本发明实施例中,当步骤103确定该JSON字符串中包含的所有数据内容中包含至少两个原始数据类型为数值类型的数据内容时,按照每个数据内容对应的原始数据类型分别对每个数据内容进行反序列化操作,将该JSON字符串转换为Java对象,从而避免了按照JSON字符串中数据精度最高的数据内容对应的数值类型,对JSON字符串中所有原始数据类型为数值类型的数据内容进行反序列化操作,导致反序列化得到的Java对象中一些数据内容的数据精度发生改变的问题。其中,反序列化操作为将JSON字符串转换为Java对象的过程。
进一步的,在经过反序列化操作,将JSON字符串转换为Java对象后,可以通过get()方法获取Java对象中封装的数据。
需要说明的是,在实际应用过程中,JSON字符串中包含的某些原始数据类型为数值类型的数据内容可以用非整数形式的数值来表达,而某些原始数据类型为数值类型的数据内容并不可用非整数形式的数值来表达,例如,人数或一些物体:电脑、手机、水杯等等。如若对这些不可用非整数形式的数值来表达的数据内容按照数据精度更高的数值类型来进行反序列化操作,那么转换得到的Java对象中对应的数据内容所指代的意义就会发生改变,例如,在JSON字符串中某一字段对应的数据内容为“100”,是代表人数为100,对应的原始数据类型为“int型”,若按照“float型”对该数据进行反序列化操作,得到的结果可能为“100.00”,对于“人数”来说并不存在小数形式,所以反序列化得到的结果与实际情况存在误差,因此在将JSON字符串反序列化为Java对象过程中,当JSON字符串中包含多个原始数据类型为数值类型的数据内容时,需要按照每个数据内容对应的原始数据类型分别对每个数据内容进行反序列化操作,从而保证反序列化得到的Java对象中的数值类型的数据内容的数据精度与JSON字符串中对应的数据内容的数据精度一致。
例如,经过判断确定前述实施例中的JSON字符串1中字段3与字段4包含的数据内容的原始数据类型为数值类型,现按照JSON字符串1中包含的每个数据内容对应的原始数据类型分别对每个数据内容进行反序列化操作:将数据内容“hebei”按照对应的原始数据类型“string型”进行反序列化操作、数据内容“CCTV-1”按照对应的原始数据类型“string型”进行反序列化操作、数据内容“123001”按照对应的原始数据类型“int型”进行反序列化操作、数据内容“20023.12”按照对应的原始数据类型“float型”进行反序列化操作,将JSON字符串1转换为Java对象1,Java对象1具体为:
class Vod{
private string Local;
private string Channel;
private int allPeopleCount;
private float allPlayTime;}
通过get()方法获取Java对象1中封装的数据,得到结果为Local=hebei,Channel=CCTV-1,allPeopleCount=123001,allPlayTime=20023.12。
本发明实施例提供的一种反序列化方法,本发明实施例能够在解析接收到的JSON字符串之后,根据解析结果确定该JSON字符串中包含的每一个字段的字段名称以及对应的数据内容,并确定每个字段名称对应的数据内容的原始数据类型,当经过判断该JSON字符串中包含的所有数据内容中包含至少两个原始数据类型为数值类型的数据内容时,按照每个数据内容对应的原始数据类型分别对每个数据内容进行反序列化操作,将该JSON字符串转换为Java对象,与现有技术中按照JSON字符串中数据精度最高的数据内容对应的数值类型,对JSON字符串中所有原始数据类型为数值类型的数据内容进行反序列化操作,将JSON字符串转换为Java对象相比,本发明实施例可以保证经过反序列化操作得到的Java对象中的数值类型的数据内容的数据精度与JSON字符串中对应的数据内容的数据精度一致,从而提高了反序列化得到的Java对象的准确率。
以下为了更加详细地说明,本发明实施例提供了另一种反序列化方法,特别是按照每个数据内容对应的原始数据类型分别将JSON字符串转换为Java对象的具体方法,具体如图2所示,该方法包括:
201、在数据传输接口中布署解析代码。
其中,数据传输接口为位于应用***中的API(Application ProgrammingInterface,应用程序编程接口),应用***通过数据传输接口接收和发送JSON字符串,从而实现不同应用***之间通过JSON字符串进行数据传输。解析代码用于解析接收到的JSON字符串,从而根据得到的解析结果确定该JSON字符串中包含的每一个字段的字段名称以及对应的数据内容。
在本发明实施例中,需要预先在数据传输接口中布署解析代码,以便后续在接收到JSON字符串后,能够通过布署的解析代码解析接收到的JSON字符串,并根据得到的解析结果确定该JSON字符串中包含的每一个字段的字段名称以及对应的数据内容。
202、接收JSON字符串。
其中,关于步骤202、接收JSON字符串,可以参考图1对应部分的描述,本发明实施例此处将不再赘述。
203、解析JSON字符串,得到解析结果。
其中,关于步骤203、解析JSON字符串,得到解析结果,可以参考图1对应部分的描述,本发明实施例此处将不再赘述。
204、确定每个字段名称对应的数据内容的原始数据类型。
在本发明实施中,采用步骤201布署的解析代码确定JSON字符串中包含的每个字段名称对应的数据内容的原始数据类型。以下将对如何采用解析代码确定每个字段名称对应的数据内容的原始数据类型进行详细说明。
(1)采用解析代码识别每个字段名称对应的数据内容。
在前述步骤中通过预先布署的解析代码解析接收到的JSON字符串,并根据得到的解析结果确定该JSON字符串中包含的每一个字段的字段名称以及对应的数据内容之后,采用该解析代码识别每个字段名称对应的数据内容,以便根据每个数据内容的具体内容确定对应的原始数据类型。
(2)判断数据内容是否为数值型数据。
其中,数值型数据具体是指一个数值,可以为一个整数数值,也可以为一个非整数数值,数值型数据的类型包括:int型、long型、float型、double型,int型为整型数值类型、long型为长整型数值类型、float型为单精度浮点型数值类型、double型为双精度浮点型数值类型。其中,整数形式的数值型数据对应的类型为:int型和long型,相比较于int型,long型存储的数值的有效位数;非整数形式的数值型数据对应的类型为:float型和double型,相比较于float型,double型能够保留非整数数值小数点后的位数更多。
在经过上述步骤(1)采用解析代码识别JSON字符串中包含的所有数据内容后,分别判断每个数据内容是否为数值型数据,即分别判断每个数据内容是否为一个具体的数值。当某个数据内容为字符串或者为对象等等时,可直接确定这个数据内容对应的原始数据类型为字符串类型或者为对象类型等等;但是,当某个数据内容为数值型数据时,在确定这个数据内容对应的原始数据类型为数值类型的基础上,后续还需确定该数据内容对应的原始数据类型具体为数值类型中的哪一种。因此,需要分别判断每个数据内容是否为数值型数据。
例如,通过前述解析JSON字符串1,根据解析结果确定JSON字符串1中包含4个字段,分别为字段1:字段名称“Local”,对应的数据内容“hebei”;字段2:字段名称“Channel”,对应的数据内容“CCTV-1”;字段3:字段名称“allPeopleCount”,对应的数据内容“123001”;字段4:字段名称“allPlayTime”,对应的数据内容“20023.12”。采用解析代码识别JSON字符串1中每个字段名称对应的数据内容后,分别判断这4个数据内容是否为数值型数据,根据判断结果得知:数据内容“hebei”和数据内容“CCTV-1”为字符串,从而确定数据内容“hebei”和数据内容“CCTV-1”对应的原始数据类型为字符串类型:string型;数据内容“123001”和数据内容“20023.12”为数值型数据,从而确定数据内容“123001”和数据内容“20023.12”对应的原始数据类型为数值类型。
(3)若是,则确定数据内容对应的数据精度,并根据数据精度确定数据内容对应的原始数据类型。
根据上述步骤(2)判断,确定某个数据内容为数值型数据时,则确定该数据内容对应的数据精度,并根据该数据精度确定该数据内容对应的原始数据类型具体为数值类型中的哪一种。对于整数形式的数值型数据可以确定对应的原始数据类型为int型或long型,当该数值型数据的有效位数较多、即精度较高时,确定该数值型数据对应的原始数据类型为long型;当该数值型数据的有效位数较少、即精度较低时,确定该数值型数据对应的原始数据类型为int型。对于非整数形式的数值型数据可以确定该数值型数据对应的原始数据类型为float型或double型,当该数值型数据小数点后有效位数比较多、即精度较高时,确定该数值型数据对应的原始数据类型为double型;当该数值型数据小数点后有效位数比较少、即精度较低时,确定该数值型数据对应的原始数据类型为float型。
需要说明的是,对于整数形式的数值型数据的有效位数为多少位时确定该数值型数据为int型、多少位时确定该数值型数据为long型,以及对于非整数形式的数值型数据,小数点后有效位数为多少位时确定该数值型数据为float型、多少位时确定该数值型数据为double型,在实际应用过程中,可以根据具体需求来确定,在本发明实施例中不进行限定。
例如,在前述实施例中经过判断得知JSON字符串1中,数据内容“123001”和数据内容“20023.12”为数值型数据、对应的原始数据类型为数值类型,当确定数据内容“123001”的数据精度后,根据该数据精度确定数据内容“123001”对应的原始数据类型为数值类型:int型;当确定数据内容“20023.12”的数据精度后,根据该数据精度确定数据内容“20023.12”对应的原始数据类型为数值类型:float型。
205、判断数据内容中是否包含至少两个原始数据类型为数值类型的数据内容。
其中,关于步骤205、判断数据内容中是否包含至少两个原始数据类型为数值类型的数据内容,可以参考图1对应部分的描述,本发明实施例此处将不再赘述。
206、若是,则按照每个数据内容对应的原始数据类型分别将JSON字符串转换为Java对象。
在本发明实施例中,当步骤204确定该JSON字符串中包含的所有数据内容中包含至少两个原始数据类型为数值类型的数据内容时,按照每个数据内容对应的原始数据类型分别对每个数据内容进行反序列化操作,将该JSON字符串转换为Java对象。以下将对如何将JSON字符串转换为Java对象进行详细说明。
(1)逐一获取解析结果中包含的每个数据内容及每个数据内容对应的原始数据类型。
在前述实施例中,已经通过预先布署的解析代码解析接收到的JSON字符串,并根据得到的解析结果确定该JSON字符串中包含的每一个字段的字段名称以及对应的数据内容,以及确定每个字段名称对应的数据内容的原始数据类型,在本发明实施例中,逐一获取解析结果中包含的每个数据内容及每个数据内容对应的原始数据类型,即逐一获取该JSON字符串中包含的每个数据内容以及每个数据内容对应的原始数据类型。
(2)按照每个数据内容对应的原始数据类型,依次对每个数据内容进行转换操作,生成Java对象。
当经过步骤(1)逐一获取得到JSON字符串中包含的每个数据内容以及每个数据内容对应的原始数据类型,按照每个数据内容对应的原始数据类型,依次对每个数据内容进行反序列化操作,即按照该JSON字符串中第一个数据内容对应的原始数据类型对第一个数据内容进行反序列化操作,在此之后,按照第二个数据内容对应的原始数据类型对第二个数据内容进行反序列化操作,使用相同的方法,完成该JSON字符串中所有数据内容的反序列化操作,生成对应的Java对象。进一步的,可以通过get()方法获取Java对象中封装的数据。
对于本发明实施例,具体应用场景可以如下所示,但不限于此包括:
在前述实施例中,确定接收到的JSON字符串1中包含4个数据内容,分别为:数据内容“hebei”、数据内容“CCTV-1”、数据内容“123001”、数据内容“20023.12”,并且确定数据内容“hebei”和数据内容“CCTV-1”对应的原始数据类型为字符串类型:string型、数据内容“123001”对应的原始数据类型为数值类型:int型、数据内容“20023.12”对应的原始数据类型为数值类型:float型。现逐一获取JSON字符串1中包含的每个数据内容及每个数据内容对应的原始数据类型,并按照每个数据内容对应的原始数据类型,依次对每个数据内容进行转换操作,即首先,按照“string型”对数据内容“hebei”进行反序列化操作;然后,按照“string型”对数据内容“CCTV-1”进行反序列化操作;其次,按照“int型”对数据内容“123001”进行反序列化操作;最后,按照“float型”对数据内容“20023.12”进行反序列化操作,在完成上述反序列化操作后,生成对应的Java对象1,Java对象1具体为:
class Vod{
private string Local;
private string Channel;
private int allPeopleCount;
private float allPlayTime;}
通过get()方法获取Java对象1中封装的数据,得到结果为Local=hebei,Channel=CCTV-1,allPeopleCount=123001,allPlayTime=20023.12。
进一步的,在实际应用过程中,同一个数据传输接口中接收到的多个JSON字符串的结构是一致的,即多个JSON字符串中包含的字段个数以及每个字段的字段名称是一致的,例如,应用***A的数据传输接口接收到JSON字符串A和JSON字符串B,其中JSON字符串A包含3个字段,对应的JSON字符串B也包含3个字段;JSON字符串A中字段1的字段名称与JSON字符串B中字段1的字段名称一致、JSON字符串A中字段2的字段名称与JSON字符串B中字段2的字段名称一致以及JSON字符串A中字段3的字段名称与JSON字符串B中字段3的字段名称也一致。
因此,为了提高同一数据传输接口将多个结构相同的JSON字符串反序列化为Java对象的转换效率,在本发明实施例的另一种实现方式中,还可以在将数据传输接口接收到的第一JSON字符串反序列化为对应的Java对象后,将该第一JSON字符串中包含的每个字段的字段名称与每个字段名称对应的数据内容的原始数据类型之间的映射关系进行缓存,当该数据传输接口接收到第二JSON字符串时,经过解析工具代码解析该第二JSON字符串确定该第二JSON字符串与第一JSON字符串结构相同,此时从缓存中获取第一JSON字符串中每个字段名称对应的数据内容的原始数据类型,作为第二JSON字符串中每个字段名称对应的数据内容的原始数据类型,以便后续按照每个数据内容对应的原始数据类型,依次对第二JSON字符串中包含的每个数据内容进行转换操作,将第二JSON字符串转换为对应的Java对象。因此,同一数据传输接口在接收到多个结构相同的JSON字符串时,当完成第一个JSON字符串的反序列化操作后,无需再次确定其他多个JSON字符串中包含的每个字段名称对应的数据内容的原始数据类型,从而提高了将JSON字符串反序列化为Java对象的转换效率。
例如,应用***A与应用***B之间进行信息交互,应用***B的数据传输接口a分别接收到了前述实施例中所述的JSON字符串1,在完成将JSON字符串1反序列化为Java对象1之后,将JSON字符串1中的4个字段的字段名称与每个字段名称对应的数据内容的原始数据类型之间的映射关系进行缓存:分别将字段名称“Local”与对应的数据内容的原始数据类型“string型”之间的映射关系、字段名称“Channel”与对应的数据内容的原始数据类型“string型”之间的映射关系、字段名称“allPeopleCount”与对应的数据内容的原始数据类型“int型”之间的映射关系以及字段名称“allPlayTime”与对应的数据内容的原始数据类型“float型”之间的映射关系进行缓存。在数据传输接口a接收到与JSON字符串1结构相同的JSON字符串2后,在缓存中获取JSON字符串1中每个字段名称对应的原始数据类型,作为JSON字符串2中每个字段名称对应的数据内容的原始数据类型,以便后续按照每个数据内容对应的原始数据类型,依次对JSON字符串2中包含的每个数据内容进行转换操作,将JSON字符串2转换为Java对象2。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的反序列化方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的反序列化方法。
进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种反序列化装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于提高反序列化得到的Java对象的准确率,具体如图3所示,该装置包括:
接收单元31,用于接收JSON字符串;
解析单元32,用于解析接收单元31接收的所述JSON字符串,得到解析结果,其中,所述解析结果中包含多个字段,每个所述字段包括:字段名称及对应的数据内容;
确定单元33,用于确定解析单元32解析得到的每个字段名称对应的数据内容的原始数据类型;
判断单元34,用于判断所述数据内容中是否包含至少两个原始数据类型为数值类型的数据内容;
转换单元35,用于当判断单元34判断所述数据内容中包含至少两个原始数据类型为数值类型的数据内容时,按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象。
进一步的,如图4所示,确定单元33包括:
识别模块331,用于采用解析代码识别所述每个字段名称对应的数据内容;
判断模块332,用于判断所述识别模块331识别的所述数据内容是否为数值型数据;
确定模块333,用于当所述判断模块332判断所述数据内容为数值型数据时,确定所述数据内容对应的数据精度,并根据所述数据精度确定所述数据内容对应的原始数据类型。
进一步的,如图4所示,转换单元35包括:
获取模块351,用于逐一获取所述解析结果中包含的每个数据内容及所述每个数据内容对应的原始数据类型;
生成模块352,用于按照获取模块351获取的所述每个数据内容对应的原始数据类型,依次对所述每个数据内容进行转换操作,生成所述Java对象。
进一步的,如图4所示,所述数值型数据的类型包括:int型、long型、float型、double型。
进一步的,如图4所示,该装置还包括:
布署单元36,用于在数据传输接口中布署解析代码,其中,所述数据传输接口用于接收所述JSON字符串,所述解析代码用于解析所述JSON字符串,以获得所述JSON字符串中每个字段包括的字段名称及对应的数据内容。
进一步的,如图4所示,该装置还包括:
缓存单元37,用于将所述每个字段名称与对应的原始数据类型的映射关系进行缓存;
获取单元38,用于当所述数据传输接口接收到与所述JSON字符串结构相同的JSON字符串时,从缓存中获取缓存单元37缓存的所述结构相同的JSON字符串包含的每个字段名称对应的数据内容的原始数据类型,以便按照每个数据内容对应的原始数据类型分别将所述结构相同的JSON字符串转换为Java对象。
本发明实施例提供的一种反序列化装置,本发明实施例能够在解析接收到的JSON字符串之后,根据解析结果确定该JSON字符串中包含的每一个字段的字段名称以及对应的数据内容,并确定每个字段名称对应的数据内容的原始数据类型,当经过判断该JSON字符串中包含的所有数据内容中包含至少两个原始数据类型为数值类型的数据内容时,按照每个数据内容对应的原始数据类型分别对每个数据内容进行反序列化操作,将该JSON字符串转换为Java对象,与现有技术中按照JSON字符串中数据精度最高的数据内容对应的数值类型,对JSON字符串中所有原始数据类型为数值类型的数据内容进行反序列化操作,将JSON字符串转换为Java对象相比,本发明实施例可以保证经过反序列化操作得到的Java对象中的数值类型的数据内容的数据精度与JSON字符串中对应的数据内容的数据精度一致,从而提高了反序列化得到的Java对象的准确率。同时,本发明实施例能够在将JSON字符串转换为Java对象后,将该JSON字符串中的每个字段名称与每个字段名称对应的数据内容的原始数据类型之间的映射关系进行缓存,在后续接收到结构相同的JSON字符串时,无需再次确定结构相同的JSON字符串中的每个字段名称对应的数据内容的原始数据类型,从而提高了将JSON字符串反序列化为Java对象的转换效率
所述反序列化装置包括处理器和存储器,上述接收单元、解析单元、确定单元、判断单元和转换单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高反序列化得到的Java对象的准确率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现以上实施例中任一项所述的反序列化方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以上实施例中任一项所述的反序列化方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
接收JSON字符串;
解析所述JSON字符串,得到解析结果,其中,所述解析结果中包含多个字段,每个所述字段包括:字段名称及对应的数据内容;
确定每个字段名称对应的数据内容的原始数据类型,并判断所述数据内容中是否包含至少两个原始数据类型为数值类型的数据内容;
若是,则按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象。
进一步的,确定每个字段名称对应的数据内容的原始数据类型包括:
采用解析代码识别所述每个字段名称对应的数据内容;
判断所述数据内容是否为数值型数据;
若是,则确定所述数据内容对应的数据精度,并根据所述数据精度确定所述数据内容对应的原始数据类型。
进一步的,按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象包括:
逐一获取所述解析结果中包含的每个数据内容及所述每个数据内容对应的原始数据类型;
按照所述每个数据内容对应的原始数据类型,依次对所述每个数据内容进行转换操作,生成所述Java对象。
进一步的,所述数值型数据的类型包括:int型、long型、float型、double型。
进一步的,在接收JSON字符串之前,所述方法还包括:
在数据传输接口中布署解析代码,其中,所述数据传输接口用于接收所述JSON字符串,所述解析代码用于解析所述JSON字符串,以获得所述JSON字符串中每个字段包括的字段名称及对应的数据内容。
进一步的,所述方法还包括:
将所述每个字段名称与对应的原始数据类型的映射关系进行缓存;
当所述数据传输接口接收到与所述JSON字符串结构相同的JSON字符串时,从缓存中获取所述结构相同的JSON字符串包含的每个字段名称对应的数据内容的原始数据类型,以便按照每个数据内容对应的原始数据类型分别将所述结构相同的JSON字符串转换为Java对象。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:接收JSON字符串;解析所述JSON字符串,得到解析结果,其中,所述解析结果中包含多个字段,每个所述字段包括:字段名称及对应的数据内容;确定每个字段名称对应的数据内容的原始数据类型,并判断所述数据内容中是否包含至少两个原始数据类型为数值类型的数据内容;若是,则按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种反序列化方法,其特征在于,包括:
接收JSON字符串;
解析所述JSON字符串,得到解析结果,其中,所述解析结果中包含多个字段,每个所述字段包括:字段名称及对应的数据内容;
确定每个字段名称对应的数据内容的原始数据类型,并判断所述数据内容中是否包含至少两个原始数据类型为数值类型的数据内容;
若是,则按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象。
2.根据权利要求1所述的方法,其特征在于,确定每个字段名称对应的数据内容的原始数据类型包括:
采用解析代码识别所述每个字段名称对应的数据内容;
判断所述数据内容是否为数值型数据;
若是,则确定所述数据内容对应的数据精度,并根据所述数据精度确定所述数据内容对应的原始数据类型。
3.根据权利要求2所述的方法,其特征在于,按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象包括:
逐一获取所述解析结果中包含的每个数据内容及所述每个数据内容对应的原始数据类型;
按照所述每个数据内容对应的原始数据类型,依次对所述每个数据内容进行转换操作,生成所述Java对象。
4.根据权利要求3所述的方法,其特征在于,所述数值型数据的类型包括:int型、long型、float型、double型。
5.根据权利要求4所述的方法,其特征在于,在接收JSON字符串之前,所述方法还包括:
在数据传输接口中布署解析代码,其中,所述数据传输接口用于接收所述JSON字符串,所述解析代码用于解析所述JSON字符串,以获得所述JSON字符串中每个字段包括的字段名称及对应的数据内容。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述每个字段名称与对应的原始数据类型的映射关系进行缓存;
当所述数据传输接口接收到与所述JSON字符串结构相同的JSON字符串时,从缓存中获取所述结构相同的JSON字符串包含的每个字段名称对应的数据内容的原始数据类型,以便按照每个数据内容对应的原始数据类型分别将所述结构相同的JSON字符串转换为Java对象。
7.一种反序列化装置,其特征在于,包括:
接收单元,用于接收JSON字符串;
解析单元,用于解析所述接收单元接收的所述JSON字符串,得到解析结果,其中,所述解析结果中包含多个字段,每个所述字段包括:字段名称及对应的数据内容;
确定单元,用于确定所述解析单元解析得到的每个字段名称对应的数据内容的原始数据类型;
判断单元,用于判断所述数据内容中是否包含至少两个原始数据类型为数值类型的数据内容;
转换单元,用于当所述判断单元判断所述数据内容中包含至少两个原始数据类型为数值类型的数据内容时,按照每个数据内容对应的原始数据类型分别将所述JSON字符串转换为Java对象。
8.根据权利要求7所述的装置,其特征在于,所述确定单元包括:
识别模块,用于采用解析代码识别所述每个字段名称对应的数据内容;
判断模块,用于判断所述识别模块识别的所述数据内容是否为数值型数据;
确定模块,用于当所述判断模块判断所述数据内容为数值型数据时,确定所述数据内容对应的数据精度,并根据所述数据精度确定所述数据内容对应的原始数据类型。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求6中任一项所述的反序列化方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求6中任一项所述的反序列化方法。
CN201710861263.5A 2017-09-21 2017-09-21 反序列化方法及装置 Pending CN109542541A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710861263.5A CN109542541A (zh) 2017-09-21 2017-09-21 反序列化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710861263.5A CN109542541A (zh) 2017-09-21 2017-09-21 反序列化方法及装置

Publications (1)

Publication Number Publication Date
CN109542541A true CN109542541A (zh) 2019-03-29

Family

ID=65828373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710861263.5A Pending CN109542541A (zh) 2017-09-21 2017-09-21 反序列化方法及装置

Country Status (1)

Country Link
CN (1) CN109542541A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442848A (zh) * 2019-07-30 2019-11-12 中国工商银行股份有限公司 数据序列化和解序列方法及其装置、电子设备和介质
CN110472204A (zh) * 2019-08-20 2019-11-19 珠海迈科智能科技股份有限公司 一种基于json传输二进制数据的方法、装置和设备
CN110516207A (zh) * 2019-08-02 2019-11-29 深圳市菲菱科思通信技术股份有限公司 一种json文件和excel文件相互转化方法
CN112035831A (zh) * 2020-08-14 2020-12-04 深信服科技股份有限公司 一种数据处理方法、装置、服务器及存储介质
CN112433709A (zh) * 2020-12-03 2021-03-02 深圳前海微众银行股份有限公司 基于json的数据处理方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090052600A1 (en) * 2007-08-20 2009-02-26 Trendchip Technologies Corp. Clock and data recovery circuits
CN102750268A (zh) * 2012-06-19 2012-10-24 山东中创软件商用中间件股份有限公司 一种对象序列化方法、对象反序列化方法、装置及***
CN106326377A (zh) * 2016-08-15 2017-01-11 东软集团股份有限公司 序列化方法、反序列化方法、装置和***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090052600A1 (en) * 2007-08-20 2009-02-26 Trendchip Technologies Corp. Clock and data recovery circuits
CN102750268A (zh) * 2012-06-19 2012-10-24 山东中创软件商用中间件股份有限公司 一种对象序列化方法、对象反序列化方法、装置及***
CN106326377A (zh) * 2016-08-15 2017-01-11 东软集团股份有限公司 序列化方法、反序列化方法、装置和***

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442848A (zh) * 2019-07-30 2019-11-12 中国工商银行股份有限公司 数据序列化和解序列方法及其装置、电子设备和介质
CN110442848B (zh) * 2019-07-30 2023-08-01 中国工商银行股份有限公司 数据序列化和解序列方法及其装置、电子设备和介质
CN110516207A (zh) * 2019-08-02 2019-11-29 深圳市菲菱科思通信技术股份有限公司 一种json文件和excel文件相互转化方法
CN110516207B (zh) * 2019-08-02 2023-09-22 深圳市菲菱科思通信技术股份有限公司 一种json文件和excel文件相互转化方法
CN110472204A (zh) * 2019-08-20 2019-11-19 珠海迈科智能科技股份有限公司 一种基于json传输二进制数据的方法、装置和设备
CN112035831A (zh) * 2020-08-14 2020-12-04 深信服科技股份有限公司 一种数据处理方法、装置、服务器及存储介质
CN112433709A (zh) * 2020-12-03 2021-03-02 深圳前海微众银行股份有限公司 基于json的数据处理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN109542541A (zh) 反序列化方法及装置
US20210089871A1 (en) Processing system and method for binary weight convolutional neural network
US20220172060A1 (en) Modifying machine learning models to improve locality
TWI796286B (zh) 一種機器學習系統的訓練方法和訓練系統
EP3612948A1 (en) Minimizing memory reads and increasing performance by leveraging aligned blob data in a processing unit of a neural network environment
US20230113271A1 (en) Methods and apparatus to perform dense prediction using transformer blocks
WO2020074989A1 (en) Data representation for dynamic precision in neural network cores
KR20180088895A (ko) 랜덤 문자열을 생성하기 위한 방법 및 장치
US20230026369A1 (en) Hardware acceleration for interface type conversions
CN114201107A (zh) 存储装置、操作存储装置的方法以及电子装置
CN114610475A (zh) 一种智能资源编排模型的训练方法
CN109872157A (zh) 区块链中执行智能合约的方法及装置
CN110209582A (zh) 代码覆盖率的统计方法及装置、电子设备、存储介质
US20230325149A1 (en) Data processing method and apparatus, computer device, and computer-readable storage medium
CN109271180A (zh) 一种数据处理方法及装置
CN108470043A (zh) 一种业务结果的获取方法及装置
CN111382557B (zh) 非定长输入数据的批量处理方法、装置、终端及存储介质
CN114327941A (zh) 一种服务提供方法及装置
CN108694187A (zh) 实时流数据的存储方法及装置
CN112712167A (zh) 支持多种卷积神经网络加速的存储器访问方法及***
CN106407345A (zh) 一种脏数据更新方法及装置
US11263517B1 (en) Flexible weight expansion
CN111461310A (zh) 处理神经网络模型的神经网络设备、神经网络***和方法
CN109413176A (zh) 报告单下载方法及装置
CN116360858B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Applicant before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190329