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
是一个根类型,仅用于承载 Parse
和 Load
方法,但它不是代表实际解析文档的类型。如果您查看 Load
或 Parse
的类型,您会看到类似这样的内容:
Load : string -> JsonProvider<"...">.Root
因此,实际解析文档的类型是主要提供类型HouseValuation
下的嵌套类型Root
。然后该函数应该将 HouseValuation.Root
作为参数:
type HouseValuation = JsonProvider<" ... ">
let createSchoolAssignmentSearchCriteria(houseValuation:HouseValuation.Root) =
houseValuation.AddressOne
当您键入 HouseValuation.
时,您会看到两个静态方法以及那里的所有嵌套类型(尽管在此示例中,只有一种记录类型)。
我有一个这样的 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
是一个根类型,仅用于承载 Parse
和 Load
方法,但它不是代表实际解析文档的类型。如果您查看 Load
或 Parse
的类型,您会看到类似这样的内容:
Load : string -> JsonProvider<"...">.Root
因此,实际解析文档的类型是主要提供类型HouseValuation
下的嵌套类型Root
。然后该函数应该将 HouseValuation.Root
作为参数:
type HouseValuation = JsonProvider<" ... ">
let createSchoolAssignmentSearchCriteria(houseValuation:HouseValuation.Root) =
houseValuation.AddressOne
当您键入 HouseValuation.
时,您会看到两个静态方法以及那里的所有嵌套类型(尽管在此示例中,只有一种记录类型)。