問題1:統一格式下某一字段實體類型不確定如何解決,類似下圖(push_info字段本質上他的值為String字符串,但該字符串實際上是想表達一種實體類型,但具體該實體中有哪些字段屬性不確定)
圖 1.1 整體json數據
圖1.2 變動的字段
基本思想:
將不確定字段的內容作為鍵值對形式,類似map集合,進行分裝,使用的時候由鍵獲取值進行對應操作。
方法一:
1.將該整體json數據解析,類似下圖
圖 2.1
圖 2.2
圖 2.3
圖 2.4 分裝獲取鍵值list的方法
圖 2.5?
圖 2.6 獲取list后的使用
思考:Bean對象中的mPush屬性的類型是JSONObject,可以替換成HashMap,這樣就不用提供獲取屬性list的方法(getPushInfoList()方法)。
圖 2.7
圖 2.8
方法二:
基本思想:根據pushcode區分不同類型的實體,首先創建好學要的實體模板,然后根據pushcode的值,用json解析時放入對應的模板.class;(模板數量過多,不利于維護,冗余代碼過多,相對上一種方法不靈活,新增push_info數據格式,就要添加對應的實體模板;優點是,在push_info中可以放更復雜的json串,不限于鍵值對,可嵌套jsonarray等)。
疑問?:
有沒有辦法不進行兩次解析,類似下圖,不用第二次對push_info在進行解析,對push_info的解析可不可以分裝在bean中一次完成,或者別的方式???
圖 3.1