haskell - 获取数据类型中的键的最佳方法是什么?
问题描述
我需要获取给定对象中的所有键,这就是我设法做到的。
{-# LANGUAGE DeriveGeneric #-}
import System.Environment
import Data.Aeson
import Data.Foldable
import GHC.Generics
import qualified Data.HashMap.Strict as Hashmap
data Person = Person {
name :: String,
age::Int
} deriving (Generic,Show)
instance ToJSON Person
main=do
let p = Person "random" 100
let obj = decode(encode p)::Maybe Object
case obj of
(Just x) -> do
let keysOfObject = Hashmap.keys x
print keysOfObject
_ -> print "failed to decode"
输出:["age","name"]
有没有更好(更简单)的方法来做到这一点
解决方案
推荐阅读
- javascript - 反应:解析错误:意外的令牌,预期的“......”
- flutter - 在多人游戏中同时向所有玩家展示广告
- docker - Kubernetes 错误:“Master.* 值已重命名,请查看文档”
- ubuntu - Cron 作业(python 脚本)不写入 json 文件
- php - 如何在 PHP 中使用 foreach 显示对象迭代数组
- python - Python Tkinter,显示实时数据
- xamarin.forms - 使用 EF Code First 获得一对一关系以在 Azure Appservice 中工作
- python - 为什么使用适当的协议捕获 url 会失败?
- java - 有一个带有计数子列的 Hibernate 实体 - 没有标量子查询
- c# - SQLXMLBulkLoad 的 .NET 核心替代方案