使用深度扫描选择器使用Json.NET删除属性可与C#一起使用,但会在F#中引发ObjectNullReferenceException

问题描述

在netcoreapp3.1应用程序中使用json.net 12.0.3,如果使用C#编写,代码可以正常工作,并且可以在F#中使用点符号来工作,但是一旦我尝试删除深度扫描发现的元素,代码就可以正常工作F#中的选择器会引发对象null引用异常。鉴于这两种都是.NET语言,我的期望是实现相同的行为。我找不到任何已记录的差异或行为期望。除了不使用F#,还有其他可能的资源吗?

样本文档

localhost:3307

F#代码失败

{
  "Active": true,Nested: {
      "Active": true,}
}

成功的C#代码

let json = JObject.Parse(File.ReadAllText(@"c:\example.json"))
json.SelectTokens("..Active") 
|> Seq.iter (fun n -> n.Parent.Remove())

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)