Newtonsoft Json反序列化为动态列表,boolean属性变为字符串

gor*_*oth 5 c# json json.net

似乎无法将包含布尔属性的动态列表反序列化为布尔值.
我有以下json.

[
  {
    "Field1": 1,
    "Field2": "Test 1",
    "Field3": true
  },
  {
    "Field1": 2,
    "Field2": "Test 2",
    "Field3": false
  }  
]
Run Code Online (Sandbox Code Playgroud)

我用的时候:

Newtonsoft.Json.JsonConvert.DeserializeObject<List<dynamic>>(jsonString)
Run Code Online (Sandbox Code Playgroud)

我得到Field3 ="True"或"False"
当绑定到网格或其他控件时,它认为这是一个"字符串"而不是"布尔".

有什么建议?

gor*_*oth 7

因此,我尝试安装 LinqPad 并找出为什么它可以在vendettamit中工作,但在我的 C# 应用程序中却不起作用。
这让我看到了这篇关于如何在 LinqPad 中转储 Newtonsoft JObject 的文章。

然后我注意到rdavisau使用了以下代码。

JsonConvert.DeserializeObject<ExpandoObject>(jsonString)
Run Code Online (Sandbox Code Playgroud)

但我正在使用以下代码。

JsonConvert.DeserializeObject<List<dynamic>>(jsonString)
Run Code Online (Sandbox Code Playgroud)

因此,一旦我将代码更改为以下内容。一切正常。

JsonConvert.DeserializeObject<List<ExpandoObject>>(jsonString)
Run Code Online (Sandbox Code Playgroud)

ExpandoObject 是我所缺少的部分。