首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Haskell中将JSON字符串解析为记录

在Haskell中将JSON字符串解析为记录
EN

Stack Overflow用户
提问于 2011-05-23 04:31:18
回答 3查看 5.3K关注 0票数 19

我正在努力理解这一点(我对Haskell还是个新手),但是我发现Text.JSON包的文档有点让人困惑。基本上我有这样的数据记录类型:

代码语言:javascript
复制
data Tweet = Tweet
    {
        from_user :: String,
        to_user_id :: String,
        profile_image_url :: String,
        created_at :: String,
        id_str :: String,
        source :: String,
        to_user_id_str :: String,
        from_user_id_str :: String,
        from_user_id :: String,
        text :: String,
        metadata :: String
    }

我有一些JSON格式的tweet,它们符合这种类型的结构。我正在努力解决的问题是如何将上述代码映射到从以下代码返回的内容

代码语言:javascript
复制
decode tweet :: Result JSValue

转换为上述数据类型。我知道我应该创建一个instance JSON Tweet实例,但我不知道从哪里开始。

如果您有任何建议,我们将不胜感激,谢谢!

EN

回答 3

Stack Overflow用户

发布于 2011-05-23 06:19:39

导入Data.JSon.Generic和Data.Data,然后将派生(数据)添加到您的记录类型,然后尝试在tweet上使用decodeJSON。

票数 5
EN

Stack Overflow用户

发布于 2019-07-12 16:14:41

我支持@tibbe的答案。但是,我想添加如何检查put的一些默认值,以防参数在提供的JSON中丢失。

在tibbe的回答中,您可以执行以下操作:

代码语言:javascript
复制
Tweet <$> v .: "from_user"
      <*> v .:? "to_user_id"       .!= "some user here"
      <*> v .: "profile_image_url" .!= "url to image"
      <*> v .: "created_at"
      <*> v .: "id_str"             != 232131
      <*> v .: "source"

这将是解析JSON时要获取的dafault参数。

票数 1
EN

Stack Overflow用户

发布于 2013-03-14 22:53:47

下面是Text.JSON.GenericdecodeJSON的一个例子:http://hpaste.org/41263/parsing_json_with_textjson

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6090599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档