C# 将JSON转换为列表

C# 将JSON转换为列表,c#,json,C#,Json,我被困在一个我确信应该有效的步骤中。我有一个方法(在一个单独的类中),它应该在处理JSON后返回一个列表作为它的值。我将粘贴跳过JSON配置的代码: public static dynamic CustInformation(string Identifier) { //SKIPPED JSON CONFIG STUFF (IT'S WORKING CORRECTLY) var result = ""; var httpResponse =

我被困在一个我确信应该有效的步骤中。我有一个方法(在一个单独的类中),它应该在处理JSON后返回一个列表作为它的值。我将粘贴跳过JSON配置的代码:

    public static dynamic CustInformation(string Identifier)
    {

  //SKIPPED JSON CONFIG STUFF (IT'S WORKING CORRECTLY)

        var result = "";
        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
        dynamic d;
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            result = streamReader.ReadToEnd();
        }

       return JsonConvert.DeserializeObject<List<Models.RootObject>>(result);
 }
但我每次都会遇到这样的错误:

 Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type      'System.Collections.Generic.List`1[Models.RootObject]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
  To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change 
 the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.
 Path 'record', line 1, position 10.

正如我在评论中所说,正如错误消息明确指出的,您试图反序列化到根对象列表中,但是您的JSON只是一个根对象,而不是数组

这是你的C#应该是什么

return JsonConvert.DeserializeObject<Models.RootObject>(result);
返回JsonConvert.DeserializeObject(结果);

正如我在评论中所说,正如错误消息明确指出的那样,您试图反序列化到根对象列表中,但您的JSON只是一个根对象,而不是数组

这是你的C#应该是什么

return JsonConvert.DeserializeObject<Models.RootObject>(result);
返回JsonConvert.DeserializeObject(结果);

错误很明显:它需要一个json数组,而您没有提供。在调用中输入的json是什么?您正在序列化包含记录对象列表的根对象。但您正在反序列化包含记录对象列表的根对象列表。你需要确保你正在序列化和反序列化到相同的类型。发布JSON Marc,它应该“对齐”Hi mason。我不完全明白你在说什么;基本上,我所做的与我之前将JSON转换为DataTable所做的相同。基本上和我的设置一样。一旦我从API中获得JSON,我就将其反序列化为RootObject,它有记录。这里我肯定遗漏了一些东西。错误很明显:它需要一个json数组,而您没有提供。在调用中输入的json是什么?您正在序列化包含记录对象列表的根对象。但您正在反序列化包含记录对象列表的根对象列表。你需要确保你正在序列化和反序列化到相同的类型。发布JSON Marc,它应该“对齐”Hi mason。我不完全明白你在说什么;基本上,我所做的与我之前将JSON转换为DataTable所做的相同。基本上和我的设置一样。一旦我从API中获得JSON,我就将其反序列化为RootObject,它有记录。我肯定错过了一些东西。哦哦!!!!现在我明白了!非常感谢梅森,非常感谢。它就在我面前>\uooooh!!!!现在我明白了!非常感谢梅森,非常感谢。它就在我面前>_
  {
   "record": [
    {
      Identifier": "DQRJO1Q0IQRS",
      "KnowName1": "",
      "KnowAddress1": "",
      "KnowRelation1": "",
      "KnowPhone1": "",
      "KnowName2": "",
      "KnowAddress2": "",
      //.....MORE STYFF
    }
  ]
}
return JsonConvert.DeserializeObject<Models.RootObject>(result);