作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习类型提供程序,它看起来像是一个突破性的功能。但是,我无法使用 JsonProvider 反序列化 json,以便目标类型具有 Generic.Dictionary 属性。它可以通过 Json.NET 来完成。这是代码:
type ByProv = JsonProvider<"""{"dict":{"A":1,"B":2}}""">
type ByHand(d:Dictionary<string,int>) =
member val dict = d with get,set
let text = """{"dict":{"C":3,"D":4}}"""
let newt = JsonConvert.DeserializeObject<ByHand> text
let prov = ByProv.Parse text
printfn "%A" newt.dict.["C"]
//Can only call statically inferred A or B (and it will throw at run-time)
printfn "%A" prov.Dict.A
dict
被推断为记录类型而不是
Dictionary
默认情况下。这可以被覆盖吗?
最佳答案
JSON 类型提供程序假定 JSON 记录用于存储记录(具有固定字段名称)并且 JSON 数组用于存储集合。您的示例是这不起作用的情况之一。
当您需要访问具有动态命名字段的 JSON 记录时,您可以使用底层 JsonValue
由提供的类型公开:
type ByProv = JsonProvider<"""{"dict":{"A":1,"B":2}}""">
let text = """{"dict":{"C":3,"D":4}}"""
let prov = ByProv.Parse text
prov.Dict.JsonValue.["C"].AsInteger()
关于f# - Json Provider 可以反序列化为 Generic.Dictionary 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24182737/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!