C# 如何将JSON数组反序列化到字典中

C# 如何将JSON数组反序列化到字典中,c#,json,C#,Json,陷入反序列化问题,需要帮助使用数据数组转换JSON文件。我不知道如何将其反序列化到该对象的字典中 我的JSON在文件中是这种格式的-它有数千行长这只是一个示例: [ { "movies": [ "A", "B", "C", "D", "E" ] }, { "movies": [ "A" ] }, { "movies": [ "C",

陷入反序列化问题,需要帮助使用数据数组转换JSON文件。我不知道如何将其反序列化到该对象的字典中

我的JSON在文件中是这种格式的-它有数千行长这只是一个示例:

    [
  {
    "movies": [
      "A",
      "B",
      "C",
      "D",
      "E"
    ]
  },
  {
    "movies": [
      "A"
    ]
  },
  {
    "movies": [
      "C",
      "D"
    ]
  }
]
到目前为止,我了解JSON结构,我的C#类是

public class Rootobject
    {
        public Class1[] Property1 { get; set; }
    }

    public class Class1
    {
        public string[] movies { get; set; }
    }

        var json = "";

        // MyObject o;
        using (FileStream s = File.Open(@"D:\test.json", FileMode.Open))
        using (StreamReader sr = new StreamReader(s))
        {
            json = sr.ReadToEnd();
        }
var tmp = JsonConvert.DeserializeObject<Rootobject>(json);
公共类根对象
{
公共类1[]属性1{get;set;}
}
公共班级1
{
公共字符串[]电影{get;set;}
}
var json=“”;
//对象o;
使用(filestreams=File.Open(@“D:\test.json”,FileMode.Open))
使用(StreamReader sr=新StreamReader)
{
json=sr.ReadToEnd();
}
var tmp=JsonConvert.DeserializeObject(json);
无法仅使用此类获取反序列化对象

    public class Class1
    {
        public string[] movies { get; set; }
    }
你能试试吗

var tmp = JsonConvert.DeserializeObject<IEnumerable<Class1>>(json);

var tmp=JsonConvert.DeserializeObject(json);

您发布的代码的问题是,您的JSON对象实际上是一个数组(请注意它如何以
[
开头,以
]
结尾),但您的代码试图将其反序列化为与JSON结构不匹配的单个
根对象

您需要反序列化到
Class1[]
,指示它是一个数组

var tmp = JsonConvert.DeserializeObject<Class1[]>(json);
班级结构

public class Class1
{
    public string key { get; set; }
    public string[] movies { get; set; }
}
反序列化

[
  {
    "key": "keyValue1",
    "movies": [
      "A",
      "B",
      "C",
      "D",
      "E"
    ]
  },
  {
    "key": "keyValue2",
    "movies": [
      "A"
    ]
  },
  {
    "key": "keyValue3",
    "movies": [
      "C",
      "D"
    ]
  }
]
var json = "";

// MyObject o;
using (FileStream s = File.Open(@"D:\test.json", FileMode.Open))
using (StreamReader sr = new StreamReader(s))
{
    json = sr.ReadToEnd();
}
var tmp = JsonConvert.DeserializeObject<Rootobject[]>(json);
// don't forget to add using System.Linq;
var dictionary = tmp.ToDictionary<string, string[]>(o => o.key, o => o.movies);
var json=”“;
//对象o;
使用(filestreams=File.Open(@“D:\test.json”,FileMode.Open))
使用(StreamReader sr=新StreamReader)
{
json=sr.ReadToEnd();
}
var tmp=JsonConvert.DeserializeObject(json);
//别忘了添加usingsystem.Linq;
var dictionary=tmp.ToDictionary(o=>o.key,o=>o.movies);

var tmp=JsonConvert.DeserializeObject(json)
-或
“{”Property1:[…]}”
对于您的Json,
[…]
是您向我们展示的Json感谢您的回复,您是否可以展示一些语法如何将tmp对象信息放入字典,这是一个大Json,您认为反序列化对象是最佳选择?