【发布时间】:2021-03-30 10:10:00
【问题描述】:
当我从极其松散的 PHP 迁移到 F# 时,我确信我会提出一连串愚蠢的问题。
这个应该是直截了当的。 我有一个json文件
{
“some_ key” : “some_value”
}
这将有一个简单的键、值(字符串、字符串)格式的几百个项目的列表。
在 F# 中,我想将该字符串解码为 dictionary<string, string> 。
看起来很明显,但我看到的所有建议似乎都非常冗长,所以假设我遗漏了一些简单的东西。
我有 Thoth 和 FSharp.Data 供我使用,但对其他任何东西都是免费的。
【问题讨论】:
-
当您拥有 FSharp.Data 的 JSON 类型提供程序和解析器时,为什么要使用松散的字典?
-
不熟悉。我非常愿意使用不同的类型,但在这种情况下,json 是一个字面字典 - 单词和定义的列表 - 所以在我看来更具语义。
-
我需要能够动态访问属性的另一个原因。例如,通过我似乎无法在 JSON 类型提供程序上执行的函数参数调用它们。
-
此外,它似乎无法动态加载示例文件。我无法控制 JSON,它是用户提供的文件,它可能不是示例文件的确切结构(它应该是,但用户错误等。我需要能够处理丢失或额外的键)。如果我可以将示例文件加载为可以解决该问题的提供文件,但似乎无法做到。