只是Haskell中的数字 - 获得价值

时间:2018-01-30 21:34:50

标签: json haskell numbers maybe

我研究了一种方法来获取我从API中获取的JSON响应体中的值的原始值。

这是我的代码:

{-# LANGUAGE OverloadedStrings #-}

import Control.Lens
import Data.Aeson.Lens (_String, key)
import Data.Aeson.Lens (_Number, key)
import Network.Wreq

conditionsQuery2 :: String -> String
conditionsQuery2 company =
"https://api.iextrading.com/1.0/stock/" ++ company ++ "/quote"

main :: IO()
main = do
    print "What's the company name?"
    company <- getLine
    r <- get (conditionsQuery2 company)
    putStrLn "The full company's name is: "
    print $ r ^. responseBody . key "companyName" . _String 
    putStrLn "And the stock price is: "
    print $ r ^? responseBody . key "latestPrice" . _Number

我得到的问题是最后一行print $ r ^? responseBody . key "latestPrice" . _Number,因为我获得的价值是Just 166.9给定的股票价格(仅作为示例)。我知道Haskell中有一个Maybe类型,但是在从JSON响应中获取数值的上下文中,有没有办法轻松访问该值?或者我是否需要根据hereJust a -> putStrLn $ "the value: " ++ show a描述的内容写一些内容?

提前致谢。

0 个答案:

没有答案