使用JSON.NET问题反序列化JSON

use*_*538 1 .net c# json json.net

我一直在尝试使用JSON.Net在C#中反序列化JSON流

我有一个JObject'JO1',当我做一个JO1.ToString()时,字符串内容是:

{
  "Successful": true,
  "Value": [
    {
      "no": "1",
      "name": "Accounting"
    },
    {
      "no": "2",
      "name": "Marketing"
    },
    {
      "no": "3",
      "name": "Information Technology"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下.NET代码无济于事.

public class main()
{
  public void main()
  {
   JObject jo = new JObject();
   jo = functionthatretrievestheJSONdata();

   List<departments> dt1 = JsonConvert.DeserializeObject<List<departments>>(jo.ToString());
  }
}

public class departments
{
    public int no { get; set; }
    public string name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

有人可以给我指向正确的方向吗?

Mik*_*oud 5

你需要一个类来包装List<departments>,像这样:

public class DeserializedDepartments
{
    public bool Successful { get; set; }
    public List<departments> Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

所以你要像这样反序列化:

DeserializedDepartments dt1 =
    JsonConvert.DeserializeObject<DeserializedDepartments>(jo.ToString());
Run Code Online (Sandbox Code Playgroud)

现在你List<departments>Valuedt1; 或dt1.Value.