Json 类型提供程序:使用类型作为函数中的参数

Json Type Provider: using type as an argument in a function

我有一个这样的 json 文档:

{ "index": 1, "addressOne": "1506 WAKE FOREST RD ", "addressTwo": "RALEIGH NC 27604-1331", "addressThree": " ", "assessedValue": ",848", "id": "c0e931de-68b8-452e-8365-66d3a4a93483", "_rid": "pmVVALZMZAEBAAAAAAAAAA==", "_ts": 1423934277, "_self": "dbs/pmVVAA==/colls/pmVVALZMZAE=/docs/pmVVALZMZAEBAAAAAAAAAA==/", "_etag": "\"0000c100-0000-0000-0000-54df83450000\"", "_attachments": "attachments/" }

然后我像这样通过类型提供程序加载它:

type HouseValuation = JsonProvider<"../data/HouseValuationSample.json">

当我尝试将 HouseValuation 用作参数的一部分时,它被转换回对象:

我做错了什么?

提前致谢

类型 HouseValuation 是一个根类型,仅用于承载 ParseLoad 方法,但它不是代表实际解析文档的类型。如果您查看 LoadParse 的类型,您会看到类似这样的内容:

Load : string -> JsonProvider<"...">.Root

因此,实际解析文档的类型是主要提供类型HouseValuation下的嵌套类型Root。然后该函数应该将 HouseValuation.Root 作为参数:

type HouseValuation = JsonProvider<" ... ">

let createSchoolAssignmentSearchCriteria(houseValuation:HouseValuation.Root) = 
  houseValuation.AddressOne

当您键入 HouseValuation. 时,您会看到两个静态方法以及那里的所有嵌套类型(尽管在此示例中,只有一种记录类型)。