Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extracting Values from JSON using lens-aeson

I just read the tutorial at https://www.fpcomplete.com/user/tel/lens-aeson-traversals-prisms, and I have successfully written a query into a json bytestring. However, I am not getting the kind of result value I want.

I'd like to do something along the lines of

if (j^? key "some key" == Just "Google") then ...
                                         else ...

But (j^? key "some key") has the type "Maybe Value".

This must be a common enough pattern that I'd be surprised if there wasn't a utility function to turn a Value into a Text. Any ideas?

like image 887
nomen Avatar asked Sep 15 '13 21:09

nomen


1 Answers

There is! The _String Prism has type Prism' Value Text, i.e. it attempts to traverse down the branch of Value containing a Text. So you can do j ^? key "some key" . _String == Just "Google".

like image 161
J. Abrahamson Avatar answered Sep 22 '22 16:09

J. Abrahamson