package Ġcn . en jo yt od ay . base . utils Ċ Ċ import Ġandroid . util . Log Ċ import Ġcn . en jo yt od ay . base . Build Config Ċ import Ġcn . en jo yt od ay . base . Common Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ Ċ /** Ċ Ġ* Ġcreate Ġby Ġhttp :// me . x ux iao . wang Ġon Ġ 2 0 1 9 / 4 / 9 Ġ 0 0 0 9 Ġ 1 6 : 1 0 Ċ Ġ* Ġlog æīĵåį° Ċ Ġ*/ Ċ object ĠLog Utils Ġ{ ĊĊĠĠĠ Ġprivate Ġvar ĠTAG Ġ= ĠCommon . LOG _ TAG ĊĊĠĠĠ Ġprivate Ġfun Ġis Debug ( method : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG Ġ|| ĠSystem . getProperty ( Common . LOG _ KEY ) Ġ== Ġ" true ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġi ( any : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Debug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( any Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġany ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ"$ any ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġi ( tag : ĠString , Ġany : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Debug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( any Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( tag , Ġany ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( tag , Ġ"$ any ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġd ( any : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Debug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( any Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġany ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ"$ any ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġd ( tag : String , any : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Debug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( any Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( tag , Ġany ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( tag , Ġ"$ any ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġw ( any : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Debug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( any Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( TAG , Ġany ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( TAG , Ġ"$ any ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġe ( any : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Debug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( any Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġany ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ"$ any ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġe ( tag : String , any : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Debug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( any Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( tag , Ġany ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( tag , Ġ"$ any ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġval ĠLINE _ SEPARATOR Ġ= ĠSystem . getProperty (" line . separator ") ĊĊĠĠĠ Ġfun Ġprint Line ( tag : ĠString , Ġis Top : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Top ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( tag , Ġ" âķ Ķ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲ âķĲâķĲ âķĲ ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( tag , Ġ" âķ ļ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲâķĲ âķĲâķĲâķĲâķĲ âķĲâķĲ âķĲ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// æīĵåį° json åŃĹç¬¦ä¸² ĊĠĠĠ Ġfun Ġprint Json ( tag : ĠString , Ġmsg : ĠString , Ġhead String : ĠString ? ="") Ġ{ ĊĠĠĠĠĠĠĠ Ġis Debug { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmessage : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġis Json Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg . startsWith ("{ ") Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= ĠJSONObject ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . toString ( 4 )// æľĢ éĩįè¦ģ çļĦæĸ¹æ³ķ ï¼Į å°± ä¸Ģ è¡Į ï¼Į è¿ĶåĽŀ æł¼å¼ı åĮĸ çļĦ json åŃĹç¬¦ä¸² ï¼Į åħ¶ ä¸ŃçļĦ æķ°åŃĹ 4 æĺ¯ ç¼© è¿Ľ åŃĹç¬¦ æķ° ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg . startsWith ("[ ") Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Array Ġ= ĠJSONArray ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Array . toString ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Json Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( head String . isNull OrEmpty (). not ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġhead String Ġ+ ĠLINE _ SEPARATOR Ġ+ Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Json ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// json Ġæķ°æį® æīĵåį° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint Line ( tag , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlines Ġ= Ġmessage . split ( LINE _ SEPARATOR . to Regex ()). drop Last While Ġ{ Ġit . isEmpty () Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( line Ġin Ġlines ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( tag , Ġ" âķĳ Ġ$ line ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint Line ( tag , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æīĵåį° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( tag , message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ