/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense . Ċ Ġ* Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠMIT ĠLicense Ġis Ġincluded Ġin Ġthis Ġfile . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTerms Ġof Ġthe ĠMIT ĠLicense : Ċ Ġ* Ġ------------------------------------------------ --- Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . bk repo . common . api . util Ċ Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Feature Ċ import Ġcom . fasterxml . jackson . databind . Serialization Feature Ċ import Ġcom . fasterxml . jackson . datatype . jdk 8 . J dk 8 Module Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . Java Time Module Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . de ser . LocalDate Deserializer Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . de ser . LocalDateTime Deserializer Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . de ser . Local Time Deserializer Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . ser . LocalDate Serializer Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . ser . LocalDateTime Serializer Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . ser . Local Time Serializer Ċ import Ġcom . fasterxml . jackson . module . kotlin . jackson ObjectMapper Ċ import Ġcom . fasterxml . jackson . module . kotlin . jackson Type Ref Ċ import Ġcom . fasterxml . jackson . module . param names . Parameter Names Module Ċ import Ġjava . io . InputStream Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Local Time Ċ import Ġjava . time . format . DateTime Formatter . ISO _ DATE Ċ import Ġjava . time . format . DateTime Formatter . ISO _ DATE _ TIME Ċ import Ġjava . time . format . DateTime Formatter . ISO _ TIME Ċ Ċ /** Ċ Ġ* ĠJson å·¥åħ· ç±» Ċ Ġ*/ Ċ object ĠJson Utils Ġ{ ĊĠĠĠ Ġval ĠobjectMapper Ġ= Ġj ack son ObjectMapper (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjava Time Module Ġ= ĠJava Time Module () ĊĊĠĠĠĠĠĠĠ Ġjava Time Module . add Serializer ( Local Time :: class . java , ĠLocal Time Serializer ( ISO _ TIME )) ĊĠĠĠĠĠĠĠ Ġjava Time Module . add Serializer ( LocalDate :: class . java , ĠLocalDate Serializer ( ISO _ DATE )) ĊĠĠĠĠĠĠĠ Ġjava Time Module . add Serializer ( LocalDateTime :: class . java , ĠLocalDateTime Serializer ( ISO _ DATE _ TIME )) ĊĠĠĠĠĠĠĠ Ġjava Time Module . add Deserializer ( Local Time :: class . java , ĠLocal Time Deserializer ( ISO _ TIME )) ĊĠĠĠĠĠĠĠ Ġjava Time Module . add Deserializer ( LocalDate :: class . java , ĠLocalDate Deserializer ( ISO _ DATE )) ĊĠĠĠĠĠĠĠ Ġjava Time Module . add Deserializer ( LocalDateTime :: class . java , ĠLocalDateTime Deserializer ( ISO _ DATE _ TIME )) ĊĠĠĠĠĠĠĠ Ġregister Module ( java Time Module ) ĊĠĠĠĠĠĠĠ Ġregister Module ( Parameter Names Module ()) ĊĠĠĠĠĠĠĠ Ġregister Module ( J dk 8 Module ()) ĊĊĠĠĠĠĠĠĠ Ġenable ( Serialization Feature . IND ENT _ OUTPUT ) ĊĠĠĠĠĠĠĠ Ġdisable ( Deserialization Feature . FAIL _ ON _ UNKNOWN _ PROPERTIES ) ĊĠĠĠĠĠĠĠ Ġdisable ( Serialization Feature . FAIL _ ON _ EMPTY _ BE ANS ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġå°Ĩ å¯¹è±¡ åºıåĪĹåĮĸ ä¸º json åŃĹç¬¦ä¸² Ċ Ġ*/ Ċ fun ĠAny . toJson String () Ġ= ĠJson Utils . object Mapper . writeValue AsString ( this ). or Empty () Ċ Ċ /** Ċ Ġ* Ġå°Ĩ json åŃĹç¬¦ä¸² åıį åºıåĪĹåĮĸ ä¸º å¯¹è±¡ Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠString . read Json String (): ĠT Ġ= ĠJson Utils . object Mapper . readValue ( this , Ġj ack son Type Ref < T >()) Ċ Ċ /** Ċ Ġ* Ġå°Ĩ json åŃĹç¬¦ä¸² æµģ åıį åºıåĪĹåĮĸ ä¸º å¯¹è±¡ Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠInputStream . read Json String (): ĠT Ġ= ĠJson Utils . object Mapper . readValue ( this , Ġj ack son Type Ref < T >()) Ċ