4
試用Edward Kmett的心靈擴展鏡頭和lens-aeson包。這裏有一個熱身解析json與lens-aeson
s = "{ \"somekey\" : [ { \"deeperkey\" : 1} , {\"deeperkey\": 2, \"otherkey\":3}]}
期望的結果是
[(1, Nothing), (2, Just 3)]
我可以做一點進步與
import Control.Lens.Aeson
import Control.Lens
import Control.Monad
import qualified Data.Vector as V
λ> s ^. key "somekey" . _Array . to V.toList >>= (^.. key "deeperkey" . _Number)
[1,2]
但我到目前爲止還沒有弄清楚如何工作的組合子硬足以得到正確的答案。 我最有可能涉及片段'鑰匙'otherkey''。有任何想法嗎?
超級接近! 's^..鍵「somekey」。 _陣列。遍歷。到(\ o - >(o^?! key「deeperkey」。_Number,o ^?key「otherkey」._Number))'得到 '[(1,Nothing),(2,Just 3)]''。 如果您爲未來的讀者編輯答案,我會標記回答的問題。 –
現在錯過了單身! –