我有一个像这样的json文档:
{ “指数”:1, “addressOne”:“1506 WAKE FOREST RD”, “addressTwo”:“RALEIGH NC 27604-1331”, “addressThree”:“”, “assessValue”:“34,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”:“附件/”}
然后我通过类型提供程序加载它:
type HouseValuation = JsonProvider<"../data/HouseValuationSample.json">
当我尝试将HouseValuation用作参数的一部分时,它会被强制转换为Object:
我做错了什么?
提前致谢
答案 0 :(得分:10)
类型HouseValuation
是一种根类型,仅用于托管Parse
和Load
方法,但它不是表示实际解析文档的类型。如果您查看Load
或Parse
的类型,您会看到以下内容:
Load : string -> JsonProvider<"...">.Root
因此,实际解析文档的类型是主提供类型Root
下的嵌套类型HouseValuation
。然后该函数应该以{{1}}作为参数:
HouseValuation.Root
当您键入type HouseValuation = JsonProvider<" ... ">
let createSchoolAssignmentSearchCriteria(houseValuation:HouseValuation.Root) =
houseValuation.AddressOne
时,您将看到两个静态方法以及所有嵌套类型(尽管在此示例中,只有一种记录类型)。