2
我想作以下測試通過:如何使用haskell鏡頭重寫JSON結構中的任意嵌套字段?
it "can rewrite a field from an object" $ do
let _42 = 42 :: Int
nested = object [ "foo" .= _42, "baz" .= object [ "bar" .= _42 ] ]
]
rewrite "bar" nested `shouldBe` object [ "foo" .= _42
, "baz" .= object [ "bar" .= ("XXXXXXXX" :: Text) ]
]
看來,我要的是從Control.Lens.Plated
像rewrite狀或transform,但我不能管理,使其工作,可能是由於缺少深刻的理解鏡頭。
我設法改變使用下面的代碼的單層,但想利用它嵌套字段。
rewrite' field value = value & key field %~ const "XXXXXXXX"
'\ field - > transform(rewrite'field)'做你想做的事嗎? (只是猜測 - 我也不是鏡頭專家) – user2407038