有没有办法自动将JSON数据转换为Data.Map或只是一个元组列表? 说,如果我有:
{Name : "Stitch", Age : 3, Friend: "Lilo"}
我希望将其转换为:
fromList [("Name","Stitch"), ("Age",3), ("Friend","Lilo")]
..没有定义Stitch数据类型。
我很乐意在生成的地图中将整数解析为字符串。我可以稍后将它们读成整数。
答案 0 :(得分:14)
您可以使用aeson
。请参阅其文档教程中的Decoding a mixed-type object:
>>> import qualified Data.ByteString.Lazy.Char8 as BS
>>> :m +Data.Aeson
>>> let foo = BS.pack "{\"Name\" : \"Stitch\", \"Age\" : 3, \"Friend\": \"Lilo\"}"
>>> decode foo :: Maybe Object
Just fromList [("Friend",String "Lilo"),("Name",String "Stitch"),("Age",Number 3.0)]
Object
只是从HashMap
键到Text
值的Value
,Value
类型是JS值的和类型表示。