私は、次のテストパスを作成したいと思います: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) ]
]
私がしたいことのようrewriteまたはtransformようControl.Lens.Plated
から何かがあるようだが、私はそれはおそらくの深い理解が欠けに、動作させるために管理することはできませんレンズ。
次のコードを使用して1つのレイヤーを変更することはできましたが、ネストされたフィールドにそのレイヤーを利用したいと考えています。
rewrite' field value = value & key field %~ const "XXXXXXXX"
'\ field - > transform( 'field'を書き換えます)は何をしますか? (ちょうど推測 - 私はレンズの専門家でもない) – user2407038