尝试使用FSharp.Data.Json库解析一个简单的json字符串,并面临以下错误。我正在使用F#2.0互动。关于如何解决错误的任何想法
JsonValue.Parse(@“{”“id”“:”“117sds”“}”);;
System.MissingMethodException:找不到方法:'!! 0 Microsoft.FSharp.Collections.SeqModule.ExactlyOne(System.Collections.Generic.IEnumerable1<!!0>)'.
1 culture)
at FSharp.Data.Json.JsonParser..ctor(String jsonText, FSharpOption
at FSharp.Data.Json.JsonValue.Parse(String text,FSharpOption`1 culture)在C:\ Tomas \ Projects \ FSharp.Data \ src \ Library \ Json.fs:第215行
at。$ FSI_0063.main @()
答案 0 :(得分:5)
正如杰克指出的那样,F#数据库实际上只适用于F#3.0。如果您可以更新F#版本,它将起作用,您将获得其他好处(如类型提供程序)。
如果您无法升级,那么您可以将JSON解析器和运行时的文件复制到您的项目中,并更改一些内容以支持F#2.0(许可证允许)。您需要的文件是Json.fs。
我认为我们不想支持2.0版本(目前为止),但如果修复很简单,请提交带有更改的拉取请求,我们可以将其合并以使其他人更容易。
答案 1 :(得分:4)
Seq.exactlyOne
是一种仅在F#3.0中可用的方法。不幸的是,在F#2.0中使用FSharp.Data库并不是一种简单的方法。
答案 2 :(得分:0)
从版本1.1.6开始,运行时组件(Json解析器,Csv解析器和Http实用程序)不再使用FSharp.Core 4.0.0.0(F#2.0版本)中不存在的任何方法,因此您将能够如果不使用类型提供程序
,请使用带有F#2.0的FSharp.Data