【发布时间】:2013-12-25 10:59:57
【问题描述】:
我不明白为什么会这样
let data =
JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(
File.ReadAllText <| Path.Combine(myPath, "ejv.json"))
没关系,虽然这个
let data =
JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>
<| File.ReadAllText
<| Path.Combine(myPath, "ejv.json")
给我两个错误,第一个是:
第二个是:
我做错了什么?
更新 @Patryk Ćwiek 提出了一个很好的编辑建议,这似乎可以修复类型错误:
let data = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>
<< File.ReadAllText
<| Path.Combine(myPath, "ejv.json")
但它产生了另一个令人费解的消息:意外的类型参数。 截图如下:
我可以轻松摆脱它删除<Dictionary<string, Dictionary<string, string>>>,但在这种情况下,我的数据是object 类型,而不是Dictionary。我可以以某种方式保存类型信息并使用流水线吗?
解决方案
感谢@Patryk Ćwiek 解决方案如下:
let d<'a>(s:string) = JsonConvert.DeserializeObject<'a>(s)
let data =
Path.Combine(myPath, "ejv.json")
|> File.ReadAllText
|> d<Dictionary<string, Dictionary<string, string>>> with
我不知道为什么,但是没有那个别名 d 它就不起作用。
【问题讨论】: