如何访问 FSharp.Data.JsonExtensions?

How do I access FSharp.Data.JsonExtensions?

抱歉,如果这个问题有点不清楚。在我对 F# 4.0 中的包感到困惑的情况下,这是我能做的最好的事情。

Don Syme、Adam Granicz 和 Antonio Cisternino 合着的 Expert F# 4.0 一书包含处理 JSON 数据的代码。代码以

开头
open FSharp.Data
open FSharp.Data.JsonExtensions

我在 Visual Studio 中安装了 FSharp.Data。不过,"JsonExtensions" 这个词下面有红色波浪线,其余代码无法编译。

在解决方案资源管理器中转到 Add References 我没有找到包 FSharp.Data.JsonExtensions。我也在 NuGet 下查看,没有找到包 FSharp.Data.JsonExtensions。有 JsonExtensions
的文档 这表明它是一个模块。但是,使用 Visual Studio 中的点,它不会出现在 FSharp.Data. 下(只有一个条目:Unit Systems

如何使该模块中的代码可用,以便我可以运行本书中的代码?

发生这种情况是因为实际上您没有安装 FSharp.Data(所以 Foggy 就在上面)。有一个 FSharp.Data 命名空间,但您需要对包进行 nuget 才能使用它。所以去 Tools | Nuget Package Manager | Manage Nuget Packages for Solution 并下载最新最好的 FSharp.Data。这将自动将其添加到 VS 中的引用文件中:

参见:

现在可以使用了:

如果您从 .fsx 脚本中使用它,请确保使用 #r

引用它

#r @"..\packages\FSharp.Data.2.3.2\lib\net40\FSharp.Data.dll"

在这种情况下,您只需右键单击参考文献(在 nugetting 之后),VS 将为您生成路径:

如果您没有看到 Send to F# Interactive,我强烈建议您安装 Visual F# Power Tools

您可以探索 accessing/serializing JSON 文件的其他方式:有 JSON type provider, Newtonsoft JSON, FSharplu, Chiron, and FSPickler