CN108132789A - 信息转换方法和装置 - Google Patents

信息转换方法和装置 Download PDF

Info

Publication number
CN108132789A
CN108132789A CN201611083776.XA CN201611083776A CN108132789A CN 108132789 A CN108132789 A CN 108132789A CN 201611083776 A CN201611083776 A CN 201611083776A CN 108132789 A CN108132789 A CN 108132789A
Authority
CN
China
Prior art keywords
character strings
converted
json
java
objects
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
CN201611083776.XA
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 CN201611083776.XA priority Critical patent/CN108132789A/zh
Publication of CN108132789A publication Critical patent/CN108132789A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Landscapes

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

Abstract

本发明实施例公开了一种信息转换方法和装置,用于高效执行Json字符串和对象间的转换。本发明实施例方法包括:获取Json字符串;判断所述Json字符串要转换成的对象是否属于预设对象,其中所述预设对象包括非caseclass对象;若所述Json字符串要转换成的对象属于所述预设对象,则将所述Json字符串转换为Java字符串;将所述Java字符串转换为对象;输出所述Java字符串转换成的对象。通过本发明实施例的方法用户先将Json字符串转换成Java字符串后,再将该Java字符串转换为对象,因Java字符串转换为对象易于实现,从而用户无需写大量代码,实现了高效执行Json字符串和对象的转换。

Description

信息转换方法和装置
技术领域
本发明涉及数据处理领域,尤其涉及一种信息转换方法和装置。
背景技术
spray是一个开源的REST/HTTP工具包和底层网络IO包,基于Scala和Akka构建,有很多基于Scala和Akka的项目都采用spray作为Http接口层的实现。
spray框架分为很多模块,例如包括spray-json模块和spray-routing模块。其中spray-json模块负责Json字符串与Scala或者Java对象相互转换的功能,spray-json模块和spray-routing模块结合起来使用,spray-routing模块负责将用户请求路由到对应的service进行处理等等
根据spray-json的使用文档,spray-json将Scala对象分成了两大类,CaseClass和非Case Class。Case Class是Scala中定义的一种特殊类。
但是对于一些非Case Class的复杂类型,spray-json的转换就需要写大量的代码。如,spray-json需要为该对象中每个字段的转换写出转换代码。
例如下面的代码实例:
上面的代码提供了一个类名为“Color”的类转换协议。其中,所有的String类型和Number类型的数据都需要手动写转换过程。如果在转换的类中引用了其它的类时,还需要为引用的每一个类都写一个类似的转换协议。
这样导致用户在进行json字符串和对象的转换时,要进行大量的工作,该过程十分不方便。
发明内容
本发明实施例提供了一种信息转换方法和装置,用于高效执行Json字符串和对象间的转换。
为了解决上述技术问题,本发明实施例提供了以上技术方案:
一种信息转换方法,包括:
获取Json字符串;
判断所述Json字符串要转换成的对象是否属于预设对象,其中所述预设对象包括非case class对象;
若所述Json字符串要转换成的对象属于所述预设对象,则将所述Json字符串转换为Java字符串;
将所述Java字符串转换为对象;
输出所述Java字符串转换成的对象。
为了解决上述技术问题,本发明实施例还提供了以上技术方案:
一种信息转换方法,包括:
获取对象;
判断所述对象是否为预设对象,其中所述预设对象包括非case class对象;
若所述对象为预设对象,则将所述对象转换成Java字符串;
根据所述Java字符串转换成spray的JsValue对象;
通过spray-json模块,将所述JsValue对象转换成Json字符串;
输出所述Json字符串。
为了解决上述技术问题,本发明实施例还提供了以上技术方案:
一种信息转换装置,包括:
获取单元,用于获取Json字符串;
判断单元,用于判断所述Json字符串要转换成的对象是否属于预设对象,其中所述预设对象包括非case class对象;
第一转换单元,用于若所述Json字符串要转换成的对象属于所述预设对象,则将所述Json字符串转换为Java字符串;
第二转换单元,用于将所述Java字符串转换为对象;
输出单元,用于输出所述Java字符串转换成的对象。
为了解决上述技术问题,本发明实施例还提供了以上技术方案:
一种信息转换装置,包括:
获取单元,用于获取对象;
判断单元,用于判断所述对象是否为预设对象,其中所述预设对象包括非caseclass对象;
第一转换单元,用于若所述对象为预设对象,则将所述对象转换成Java字符串;
第二转换单元,用于根据所述Java字符串转换成spray的JsValue对象;
第三转换单元,用于通过spray-json模块,将所述JsValue对象转换成Json字符串;
输出单元,用于输出所述Json字符串。
为了解决上述技术问题,本发明实施例还提供了以上技术方案:
一种信息转换装置,包括:第一信息转换单元和第二信息转换单元,
其中,
所述第一信息转换单元为如上所述的输出对象的信息转换装置;
所述第二信息转换单元为如上所述的输出Json字符串的信息转换装置。
从以上技术方案可以看出,本发明实施例具有以下优点:
获取Json字符串后,判断Json字符串要转换成的对象是否属于包括非caseclass对象的预设对象,若Json字符串要转换成的对象属于预设对象,则将Json字符串转换为Java字符串;然后,将Java字符串转换为对象;再输出对象。这样,若将Json字符串直接转换成对象,用户将要为此写大量代码,十分繁琐,但是通过本发明实施例的方法用户先将Json字符串转换成Java字符串后,再将该Java字符串转换为对象,因Java字符串转换为对象易于实现,从而用户无需写大量代码,实现了高效执行Json字符串和对象的转换。
附图说明
图1为本发明一实施例提供的一种信息转换方法的方法流程示意图;
图2为本发明另一实施例提供的一种信息转换方法的方法流程示意图;
图3为本发明另一实施例提供的一种信息转换方法的方法流程示意图;
图4为本发明另一实施例提供的一种信息转换方法的方法流程示意图;
图5为本发明另一实施例提供的一种信息转换装置的结构示意图;
图6为本发明另一实施例提供的一种信息转换装置的结构示意图;
图7为本发明另一实施例提供的一种信息转换装置的结构示意图。
具体实施方式
本发明实施例提供了一种信息转换方法和装置,用于高效执行Json字符串和对象间的转换。
图1为本发明实施例提供的一种信息转换方法的方法流程示意图。参阅图1,本发明实施例的方法包括:
步骤101:获取Json字符串;
步骤102:判断Json字符串要转换成的对象是否属于预设对象,其中预设对象包括非case class对象;若Json字符串要转换成的对象属于预设对象,则执行步骤103.
步骤103:将Json字符串转换为Java字符串;
步骤104:将Java字符串转换为对象;
步骤105:输出Java字符串转换成的对象。
可选地,
将Java字符串转换为对象,包括:
使用Jackson框架,将Java字符串转换为对象。
可选地,
使用Jackson框架,将Java字符串转换为对象,包括:
当Java字符串属于Abstract类或Interface类时,使用Jackson框架,根据Jackson框架提供的注解将Java字符串转换为对象。
可选地,
预设对象为非case class对象、或者包含非case class对象的case class对象、或者子对象中包含了非case class对象的case class对象。
综上所述,获取Json字符串后,判断Json字符串要转换成的对象是否属于包括非case class对象的预设对象,若Json字符串要转换成的对象属于预设对象,则将Json字符串转换为Java字符串;然后,将Java字符串转换为对象;再输出对象。这样,若将Json字符串直接转换成对象,用户将要为此写大量代码,十分繁琐,但是通过本发明实施例的方法用户先将Json字符串转换成Java字符串后,再将该Java字符串转换为对象,因Java字符串转换为对象易于实现,从而用户无需写大量代码,实现了高效执行Json字符串和对象的转换。
图2为本发明实施例提供的一种信息转换方法的方法流程示意图。参阅图2,本发明实施例的方法包括:
步骤201:获取对象;
步骤202:判断对象是否为预设对象,其中预设对象包括非case class对象,若对象为预设对象,则执行步骤203。
步骤203:将对象转换成Java字符串;
步骤204:根据Java字符串转换成spray的JsValue对象;
步骤205:通过spray-json模块,将JsValue对象转换成Json字符串;
步骤206:输出Json字符串。
可选地,
将对象转换成Java字符串,包括:
使用Jackson框架,将对象转换成Java字符串。
可选地,
预设对象为非case class对象、或者包含非case class对象的case class对象、或者子对象中包含了非case class对象的case class对象。
综上所述,获取对象后,判断该对象是否为预设对象,其中预设对象包括非caseclass对象。若对象为预设对象,则将对象转换成Java字符串,然后根据Java字符串生成spray的JsValue对象;再通过spray-json模块,将JsValue对象转化为Json字符串,以输出Json字符串。这样,通过本发明实施例的方法用户先将对象转换为Java字符串,再根据该Java字符串得到Json字符串。因对象转换为Java字符串易于实现,从而用户无需写大量代码,实现了高效执行对象和Json字符串的转换。
图3为本发明实施例提供的一种信息转换方法的方法流程示意图。参考上述内容,参阅图3,本发明实施例的方法包括:
步骤301:获取Json字符串。
转换设备的spray-json模块获取Json字符串。其中,Json字符串是json格式的字符串。
例如,spray框架中的spray-json模块获取JSON字符串,spray-json模块可将该Json字符串转换成Scala对象或者Java对象,spray-json模块产生的对象输出给spray-routing模块以供后续模块使用。
步骤302:判断Json字符串要转换成的对象是否属于预设对象,若Json字符串要转换成的对象属于预设对象,则执行步骤303,否则执行步骤305。
其中预设对象包括非case class对象。
预设对象的具体形式例如可以为非case class对象,或者包含非case class对象的case class对象、或者子对象中包含了非case class对象的case class对象。其中,包含非case class对象的case class对象,和子对象中包含了非caseclass对象的case class对象可统称为复杂case class对象。而不包括非case class对象的case class对象称为简单case class对象。
根据spray-json的使用文档,spray-json将Scala对象分成了两大类:CaseClasses和非Case Class。case class对象是Scala中定义的一种特殊类,即上述的简单case class对象,该简单case class对象转换起来容易实现。
但是在spray-json模块中,对于在json字符串与非case class对象或者json字符串与复杂case class对象之间相互转换时,需要写大量代码,不方便用户的操作。但若使用本发明实施例的方法将能减少用户的工作量,高效实现json字符串转换成对象。
具体来说,spray-json模块根据业务规定判断该Json字符串要转换成的对象是否属于预设对象。从而本发明实施例根据Json字符串要转换成的对象的具体情况执行不同的流程,以使得本发明实施例的方法更高效地完成Json字符串转换成对象,方便用户的操作。
步骤303:将Json字符串转换为Java字符串。
若Json字符串要转换成的对象属于预设对象,则将Json字符串转换为Java字符串。以使得后续可以根据Java字符串进行对象转换操作。
其中,Java字符串与scala的字符串两者实质一样,只是名称不同,步骤303与将Json字符串转换为scala字符串等同。
步骤304:使用Jackson框架,将Java字符串转换为对象;
获取到Java字符串后,即可使用Jackson框架,将Java字符串转换为对象。
其中,将Java字符串转换成的对象,包括Java对象和scala对象。至于转成什么对象根据用户调用spray-json模块的接口来决定,该接口若使用的是Java对象就转换成Java对象,该接口使用scala对象就转换成scala对象。
Jackson为转换框架。使用Jackson框架后,在Java字符串与对象进行转换时,对简单的String、double、int等类型不需要手动写代码转换,从而减少了代码转化量。
可选地,若该Java字符串属于Abstract或Interface类,使用spray-json模块直接转换将会需要用户写代码判断Java字符串属于的Abstract类或者Interface类需要实例化成哪个类。为了减少用户的工作量,在本发明有的实施例中,使用Jackson框架,将Java字符串转换为对象,包括:当Java字符串属于Abstract类或Interface类时,使用Jackson框架,根据Jackson框架提供的注解将Java字符串转换为对象。
注解由Jackson框架提供,使用在要转换的对象上。通过注解,可以向工作用户提供属于Abstract类或者Interface类的字符串需要实例化成的类的信息,标明转换时需要使用的信息,从而为用户指定了转换方式,用户无需写代码判断具体的转换方式,减少了用户的工作量。
从而,在使用了Scala以及Akka的场景中,需要使用spray作为RestfulWebService层,该spray包括spray-json模块,本发明实施例的方法在Scala的spray-json框架中在执行字符串和对象间的装换不方便的地方引入了Java的Jackson框架,从而在一个项目中引入了两个json转换框架,降低转换的代码量。
可以理解,在本发明有的实施例中,也可以直接在spray-json模块上将Java字符串转换为对象,此时在spray-json模块上设置有与Jackson框架一样的功能。
例如,
这段代码的作用是将OldSImpleCube类转换成json字符串,将json字符串转换成OldSimpleCube。
read部分就是将输入的json字符串转换为对象,write方法将对象转换成字符串。
经由spray-json转换之后,接口调用方传过来的json字符串被转换成了一个JsValue对象,需要调用该对象的toString方法来将其转换成Java的String对象。
从这段代码可以看出,外层的输入、输出都是Spray的对象JsValue,但是内层的转换实现,mapper.readeValue()和mapper.writeWith都是Jackson框架提供的方法。
步骤305:使用spray-json的转换规则,将Json字符串转换成对象。
若Json字符串要转换成的对象不属于预设对象,即该Json字符串属于简单CaseClasses对象的字符串时,此时,要将Json字符串转换成对象,可使用spray-json的转换语句执行,该转换语句为简单的语句。从而可直接使用spray-json的转换规则,将Json字符串转换成对象。
例如,使用spray-json的转换规则,使用下述代码就能将Json字符串转换成对象:
implicit val colorFormat=jsonFormat4(Color.apply)。
步骤306:输出对象。
通过步骤304或步骤306的执行,转换设备的spray-json模块得到由json字符串得到的对象,该对象可为Java字符串转换成的对象或直接由Json字符串转换成的对象,然后spray-json模块输出得到的对象。
输出对象的具体方式可以是通过spray-json模块向spray-routing模块发送对象。spray-routing模块接收由json字符串转换而来的对象后,将该对象交由后续模块处理。
综上所述,获取Json字符串后,判断Json字符串要转换成的对象是否属于包括非case class对象的预设对象,若Json字符串要转换成的对象属于预设对象,则将Json字符串转换为Java字符串;然后,将Java字符串转换为对象;再输出对象。这样,若将Json字符串直接转换成对象,用户将要为此写大量代码,十分繁琐,但是通过本发明实施例的方法用户先将Json字符串转换成Java字符串后,再将该Java字符串转换为对象,因Java字符串转换为对象易于实现,从而用户无需写大量代码,实现了高效执行Json字符串和对象的转换。
图4为本发明实施例提供的一种信息转换方法的方法流程示意图。参考上述内容,参阅图4,本发明实施例的方法包括:
步骤401:获取对象。
设备的spray-json模块获取对象。
在spray中,该对象可由spray-routing模块产生,然后spray-routing模块将该对象传送给spray-json模块。
步骤402:判断对象是否为预设对象,若对象为预设对象,则执行步骤403,否则执行步骤406。
其中预设对象包括非case class对象;
预设对象的具体形式例如可以为非case class对象,或者包含非case class对象的case class对象、或者子对象中包含了非case class对象的case class对象。其中,包含非case class对象的case class对象,和子对象中包含了非caseclass对象的case class对象可统称为复杂case class对象。而不包括非case class对象的case class对象称为简单case class对象。
根据spray-json的使用文档,spray-json将Scala对象分成了两大类:CaseClasses和非Case Class。case class对象是Scala中定义的一种特殊类,即上述的简单case class对象,该简单case class对象转换起来容易实现。
但是在spray-json模块中,对于在json字符串与非case class对象或者json字符串与复杂case class对象之间相互转换时,需要写大量代码,不方便用户的操作。但若使用下述步骤的方法将能减少用户的工作量,高效实现json字符串转换成对象。
具体来说,spray-json模块根据业务规定判断对象是否为预设对象。从而本发明实施例根据对象的具体形式,执行不同的流程,以使得本发明实施例的方法更高效地完成对象转换成Json字符串,方便用户的操作。
步骤403:使用Jackson框架,将对象转换成Java字符串。
若对象为预设对象,则使用Jackson框架,将对象转换成Java字符串。
使用Jackson框架后,对简单的String、double、int等类型不需要手动写代码转换,减少了用户的工作量,从而可方便执行对象转换成Java字符串。
可以理解,本发明实施例也可以直接在spray-json模块上将对象转换成Java字符串,此时在spray-json模块上设置有与Jackson框架一样的功能。
步骤404:根据Java字符串生成spray的JsValue对象;
为了将Jackson框架生成的内容发送给用户,先将Jackson框架生成的Java字符串转化成spray的JsValue对象。
步骤405:通过spray-json模块,将JsValue对象转化为Json字符串。
转化设备的spray-json模块得到JsValue对象后,再通过spray-json模块,将JsValue对象转化为Json字符串。
从而,在使用了Scala以及Akka的场景中,需要使用spray作为RestfulWebService层,该spray包括spray-json模块,本发明实施例的方法在Scala的spray-json框架中在执行字符串和对象间的装换不方便的地方引入了Java的Jackson框架,从而在一个项目中引入了两个json转换框架,降低转换的代码量。
步骤406:使用spray-json的转换规则,将对象转换成Json字符串。
若对象不为预设对象,即该对象为简单Case Classes对象,spray-json框架中,将简单Case Classes对象转换成JSON字符串,容易实现,从而可直接使用spray-json的转换规则执行该转换过程。
步骤407:输出Json字符串。
转化设备的spray-json模块通过上述步骤得到Json字符串后,输出该Json,以供用户使用。
可以理解,图3所示的实施例和图4所示的实施例可以结合使用,例如,接口调用者通过传入json字符串来调用接口,接口提供方使用图3所示的实施例将json字符串转换成对象,并经过一些列的逻辑处理之后产生结果对象,然后通过图4所示的实施例将结果对象转换成为json字符串返回给接口调用方。具体可参考图3所示实施例的代码。
综上所述,获取对象后,判断该对象是否为预设对象,其中预设对象包括非caseclass对象。若对象为预设对象,则将对象转换成Java字符串,然后根据Java字符串生成spray的JsValue对象;再通过spray-json模块,将JsValue对象转化为Json字符串,以输出Json字符串。这样,通过本发明实施例的方法用户先将对象转换为Java字符串,再根据该Java字符串得到Json字符串。因对象转换为Java字符串易于实现,从而用户无需写大量代码,实现了高效执行对象和Json字符串的转换。
图5为本发明实施例提供的一种信息转换装置的结构示意图。参考上述内容,参阅图5,本发明实施例的装置包括:
获取单元501,用于获取Json字符串;
判断单元502,用于判断Json字符串要转换成的对象是否属于预设对象,其中预设对象包括非case class对象;
第一转换单元503,用于若Json字符串要转换成的对象属于预设对象,则将Json字符串转换为Java字符串;
第二转换单元504,用于将Java字符串转换为对象;
输出单元505,用于输出Java字符串转换成的对象。
可选地,
第二转换单元504,还用于使用Jackson框架,将Java字符串转换为对象。
可选地,
第二转换单元504,还用于当Java字符串属于Abstract类或Interface类时,使用Jackson框架,根据Jackson框架提供的注解将Java字符串转换为对象。
可选地,
预设对象为非case class对象,或者包含非case class对象的case class对象、或者子对象中包含了非case class对象的case class对象。
综上所述,获取Json字符串后,判断Json字符串要转换成的对象是否属于包括非case class对象的预设对象,若Json字符串要转换成的对象属于预设对象,则将Json字符串转换为Java字符串;然后,将Java字符串转换为对象;再输出对象。这样,若将Json字符串直接转换成对象,用户将要为此写大量代码,十分繁琐,但是通过本发明实施例的方法用户先将Json字符串转换成Java字符串后,再将该Java字符串转换为对象,因Java字符串转换为对象易于实现,从而用户无需写大量代码,实现了高效执行Json字符串和对象的转换。
图6为本发明实施例提供的一种信息转换装置的结构示意图。参考上述内容,参阅图6,本发明实施例的装置包括:
获取单元601,用于获取对象;
判断单元602,用于判断对象是否为预设对象,其中预设对象包括非caseclass对象;
第一转换单元603,用于若对象为预设对象,则将对象转换成Java字符串;
第二转换单元604,用于根据Java字符串转换成spray的JsValue对象;
第三转换单元605,用于通过spray-json模块,将JsValue对象转换成Json字符串;
输出单元606,用于输出Json字符串。
可选地,
第一转换单元603,还用于使用Jackson框架,将对象转换成Java字符串。
可选地,
预设对象为非case class对象,或者包含非case class对象的case class对象、或者子对象中包含了非case class对象的case class对象。
综上所述,获取对象后,判断该对象是否为预设对象,其中预设对象包括非caseclass对象。若对象为预设对象,则将对象转换成Java字符串,然后根据Java字符串生成spray的JsValue对象;再通过spray-json模块,将JsValue对象转化为Json字符串,以输出Json字符串。这样,通过本发明实施例的方法用户先将对象转换为Java字符串,再根据该Java字符串得到Json字符串。因对象转换为Java字符串易于实现,从而用户无需写大量代码,实现了高效执行对象和Json字符串的转换。
图7为本发明实施例提供的一种信息转换装置的结构示意图。参考上述内容,参阅图7,本发明实施例的信息转换装置700包括:
第一信息转换单元701和第二信息转换单元702,
其中,
该第一信息转换单元可参考图5所示实施例中的信息转换装置,在此不再赘述。
该第二信息转换单元可参考图6所示实施例中的信息转换装置,在此不再赘述。
这样,若直接进行将Json字符串和对象间的转换,用户将要为此写大量代码,十分繁琐,但是通过本发明实施例的方法通过Java字符串的中介作用,因Java字符串转换为对象易于实现,从而用户无需写大量代码,实现了高效执行Json字符串和对象间的转换。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种信息转换方法,其特征在于,包括:
获取Json字符串;
判断所述Json字符串要转换成的对象是否属于预设对象,其中所述预设对象包括非case class对象;
若所述Json字符串要转换成的对象属于所述预设对象,则将所述Json字符串转换为Java字符串;
将所述Java字符串转换为对象;
输出所述Java字符串转换成的对象。
2.根据权利要求1所述的方法,其特征在于,
所述将所述Java字符串转换为对象,包括:
使用Jackson框架,将所述Java字符串转换为对象。
3.根据权利要求2所述的方法,其特征在于,
所述使用Jackson框架,将所述Java字符串转换为对象,包括:
当所述Java字符串属于Abstract类或Interface类时,使用Jackson框架,根据所述Jackson框架提供的注解将所述Java字符串转换为对象。
4.根据权利要求1所述的方法,其特征在于,
所述预设对象为非case class对象、或者包含非case class对象的case class对象、或者子对象中包含了非case class对象的case class对象。
5.一种信息转换方法,其特征在于,包括:
获取对象;
判断所述对象是否为预设对象,其中所述预设对象包括非case class对象;
若所述对象为预设对象,则将所述对象转换成Java字符串;
根据所述Java字符串转换成spray的JsValue对象;
通过spray-json模块,将所述JsValue对象转换成Json字符串;
输出所述Json字符串。
6.根据权利要求5所述的方法,其特征在于,
所述将所述对象转换成Java字符串,包括:
使用Jackson框架,将所述对象转换成Java字符串。
7.根据权利要求5所述的方法,其特征在于,
所述预设对象为非case class对象、或者包含非case class对象的case class对象、或者子对象中包含了非case class对象的case class对象。
8.一种信息转换装置,其特征在于,包括:
获取单元,用于获取Json字符串;
判断单元,用于判断所述Json字符串要转换成的对象是否属于预设对象,其中所述预设对象包括非case class对象;
第一转换单元,用于若所述Json字符串要转换成的对象属于所述预设对象,则将所述Json字符串转换为Java字符串;
第二转换单元,用于将所述Java字符串转换为对象;
输出单元,用于输出所述Java字符串转换成的对象。
9.一种信息转换装置,其特征在于,包括:
获取单元,用于获取对象;
判断单元,用于判断所述对象是否为预设对象,其中所述预设对象包括非case class对象;
第一转换单元,用于若所述对象为预设对象,则将所述对象转换成Java字符串;
第二转换单元,用于根据所述Java字符串转换成spray的JsValue对象;
第三转换单元,用于通过spray-json模块,将所述JsValue对象转换成Json字符串;
输出单元,用于输出所述Json字符串。
10.一种信息转换装置,其特征在于,包括:第一信息转换单元和第二信息转换单元,
其中,
所述第一信息转换单元为权利要求8所述的信息转换装置;
所述第二信息转换单元为权利要求9所述的信息转换装置。
CN201611083776.XA 2016-11-30 2016-11-30 信息转换方法和装置 Pending CN108132789A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611083776.XA CN108132789A (zh) 2016-11-30 2016-11-30 信息转换方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611083776.XA CN108132789A (zh) 2016-11-30 2016-11-30 信息转换方法和装置

Publications (1)

Publication Number Publication Date
CN108132789A true CN108132789A (zh) 2018-06-08

Family

ID=62387345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611083776.XA Pending CN108132789A (zh) 2016-11-30 2016-11-30 信息转换方法和装置

Country Status (1)

Country Link
CN (1) CN108132789A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810069A (zh) * 2012-07-16 2012-12-05 深圳市融创天下科技股份有限公司 一种java对象的请求和响应方法、装置、系统和终端
CN103593194A (zh) * 2013-11-21 2014-02-19 北京国双科技有限公司 对象序列化方法和装置
CN103605518A (zh) * 2013-11-19 2014-02-26 北京国双科技有限公司 对象反序列化方法和装置
US20140125492A1 (en) * 2012-11-06 2014-05-08 General Electric Company Systems and methods for implementation of a smart energy profile using data-interchange encoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810069A (zh) * 2012-07-16 2012-12-05 深圳市融创天下科技股份有限公司 一种java对象的请求和响应方法、装置、系统和终端
US20140125492A1 (en) * 2012-11-06 2014-05-08 General Electric Company Systems and methods for implementation of a smart energy profile using data-interchange encoding
CN103605518A (zh) * 2013-11-19 2014-02-26 北京国双科技有限公司 对象反序列化方法和装置
CN103593194A (zh) * 2013-11-21 2014-02-19 北京国双科技有限公司 对象序列化方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
佚名: "Java中的JSON数据绑定框架Jackson使用介绍", 《HTTPS://SEGMENTFAULT.COM/A/1190000005717319》 *
佚名: "spray-json", 《HTTPS://WWW.CNBLOGS.COM/WEILUNHUI/P/5811472.HTML》 *

Similar Documents

Publication Publication Date Title
KR20200110154A (ko) 시각적 질문응답 모델, 전자 기기 및 저장 매체
CN111783124B (zh) 基于隐私保护的数据处理方法、装置和服务器
CN105117378B (zh) 一种json文件转换为excel文件的方法及装置
CN103873692B (zh) 一种分享资源的方法、装置及系统
JP2015505399A (ja) 状態機械格子におけるカウンタ動作
CN104391793B (zh) 测试步骤及测试脚本生成方法及装置
CN105227595B (zh) 一种消息发送方法和设备
CN110457038A (zh) 附属应用端的卡片显示方法、装置、设备以及存储介质
WO2023024735A1 (zh) 用于隐私保护的机器学习算法脚本编译方法和编译器
CN104424498B (zh) 一种高速变换二维码编码的方法及装置
WO2012088769A1 (zh) 数据过滤系统和方法
CN107229656A (zh) 全量数据导出方法、装置及系统
CN113535749A (zh) 查询语句生成方法及装置
CN106201526B (zh) 业务组件化方法及系统
CN102402455A (zh) 调用动态链接库的方法和装置
CN108198549A (zh) 一种设备控制方法、装置、存储介质、服务器及用户终端
CN108153745B (zh) 一种应用数据调用方法及应用开发系统
CN117749899A (zh) 协议转换框架、设备通讯方法、装置和计算机存储介质
CN107341840A (zh) 一种动画处理方法和装置
CN108132789A (zh) 信息转换方法和装置
CN107038022B (zh) 一种反序列化方法及装置
CN107092474A (zh) 程序开发方法、etl处理方法及装置
CN106447507A (zh) 一种社交网络的信息处理系统和方法
CN114566173A (zh) 一种音频混音方法、装置、设备及存储介质
US10841405B1 (en) Data compression of table rows

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

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

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20180608

RJ01 Rejection of invention patent application after publication