簡體   English   中英

如何在Haskell中將記錄類型的值轉換為JSON字符串?

[英]How can one turn a value of a record type into a JSON String in Haskell?

假設我的記錄類型如下

data Person = Person
  { name :: String,
    age
  } deriving (Show)

我將如何將其轉換為JSON對象甚至是String? (我想在后面對其進行哈希處理)

您可以使用Aeson庫輕松完成此操作 實際上,這正是他們所舉的例子……很有趣……

{-# LANGUAGE DeriveGeneric, OverloadedStrings #-}

import Data.Aeson
import GHC.Generics

data Person = Person {
      name :: String
    , age  :: Int
    } deriving (Generic)
instance ToJSON Person

main :: IO ()
main = print $ encode (Person "Luke Morgenstern" 734)

注意:如果僅出於計算hash的目的執行此操作,則JSON是不必要且效率低下的繞道。 最好直接去

{-# LANGUAGE DeriveGeneric #-}

import Data.Hashable
import GHC.Generics

data Person = Person {
      name :: String
    , age  :: Int
    } deriving (Generic)
instance Hashable Person

main :: IO ()
main = print $ hash (Person "Luke Morgenstern" 734)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM