現有一個LIST:
[ { "type":"呼吸系统", "illness":"肺气肿", "quotaName": "血压" }, { "type":"呼吸系统", "illness":"肺气肿", "quotaName": "血常规" }, { "type":"呼吸系统", "illness":"哮喘", "quotaName": "血常规" }, { "type":"循环系统", "illness":"高血压", "quotaName": "心电图" }, { "type":"循环系统", "illness":"高血压", "quotaName": "心电彩超" } ]
我想得到的list:
[ { "type":"呼吸系统", "illnessList":[ { "name":"肺气肿", "quotaList":[ { "name":"血压" }, { "name":"血常规" } ] }, { "name":"哮喘", "quotaList":[ { "name":"血常规" } ] } ] }, { "type":"循环系统", "illnessList":[ { "name":"高血压", "quotaList":[ { "name":"心电图" }, { "name":"心电彩超" } ] } ] } ]
原有的list,所有疾病系統和疾病,以及疾病檢測指標都是合在一起的
我想根據類型分類得到一個list,但始終找不到思路
循環,遍歷多次以後感覺腦袋糊掉了,請求各位大大給個思路
按照題主的輸入輸出要求,從一個
JSONArray
轉換到另一個JSONArray
...感覺輸出的JSONArray無非是按照了兩個屬性進行了歸類,其實結構應該類似於Map
>
,所以我的想法就是把輸入的JSONArray
要轉換成Map
>
的結構即可...而看到我剛才說的依照屬性歸類...那...很顯然...噔噔噔! ! ! ....心中自然浮現了Java8的Collectors.groupingBy
...直接無腦groupingBy
就行了嘛下面是我的小想法和程式碼:
既然是物件導向,所以我先建立了一個輸入的Bo對象
FromDataBo
接著是依照輸出格式建立的輸出物件
ToDataBo
(附註解的方法先可以不看...只是轉換用的,可以先看資料結構)輸入輸出物件有了,那就可以進行最重要依屬性分類,我先把轉換成
Map
>
的程式碼貼出來...主要就是這個嘛.. .註釋嘛,熟悉lamdba
的估計一眼就看出來...不熟悉再多了解哈吧最後是完整的測試程式碼和結果,最後的
result
物件就是你需要的輸出JSONArray
測試結果:
就醬...
這個不是後端吐出來的嗎?沒必要你去做處理啊,跟後端說下就好啊。或者你就用他們吐的,實現你的效果就好。
無非你想更省事。直接一個循環處理。
用上面的數組,在迴圈裡做處理 跟你處理成後來的 是一樣的。不如前置處理。性能高。下面的是標準的風格。
介面貼出來。
程式碼位址
http://jsbin.com/roqejoficu/e...
寫的不好,如有更優的方法,希望交流交流