dubbo布林值序列化後沒有is問題

2021-10-11 05:38:01 字數 711 閱讀 5046

今天遇到乙個問題,dubbo介面裡的某個response的bool欄位,欄位名裡含有is,序列化後的值裡is居然自動消失了。

這裡隨便舉個例子:

public

class

user

implements

serializable

呼叫該dubbo介面之後,序列化出來的user中,本來的ispayed變成了payed

因為dubbo用的是gson解析,所以嘗試加上註解@serializedname("ispayed"),但是結果沒變化。

後來發現,欄位名貌似是從get、set方法名獲取的,而這裡預設生成的getter方法是ispayed,setter是setpayed,而不是getispayedsetispayed

解決方式

去掉is

阿里巴巴程式設計規範要求bool命名不要用is,因為可能會在某些場景出問題。之所以這麼做也是有跡可循的,也有很多部落格展示了不同序列化工具(如jackson、fastjson)對於bool欄位序列化方式的不同

修改get、set方法

分別修改為:getispayedsetispayed

Android本地化布林值

今天在做本地化android的時候遇到乙個問題就是不知道怎麼本地化布林值。想了個解決辦法如下 我們可以為true和false建立字串資源 英語字串資源 name boolean true true string name boolean false false string 中文字串資源 name ...

dubbo的序列化問題

當兩個系統之間存在引數傳遞的時候,如果傳遞的引數是個物件,它必須實現序列化,而且如果這個物件的屬性還是乙個物件的話,那麼相應的另外乙個物件也是需要序列化。例子 呼叫系統在呼叫快取服務的時候,通過工廠方法傳遞乙個redisservice,這無意間就形成了引數傳遞,不僅redisservice需要實現序...

Dubbo和FastJson反序列化漏洞

dubbo 近日 dubbo 官方報告了乙個 dubbo 遠端 執行問題 cve 2020 1948 該問題由 provider 反序列化漏洞引起。根據介紹,攻擊者可以使用無法識別的服務名稱或方法名稱,並帶上一些惡意引數有效載荷傳送 rpc 請求。當惡意引數反序列化後,將執行一些惡意 受影響的版本 ...