Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Newtonsoft C中加载JSON数组时出现读取错误#_C#_Arrays_Json_List - Fatal编程技术网

C# 在Newtonsoft C中加载JSON数组时出现读取错误#

C# 在Newtonsoft C中加载JSON数组时出现读取错误#,c#,arrays,json,list,C#,Arrays,Json,List,我在C#中使用Newtonsoft JSON解析器。JSON的格式似乎正确,但我得到了一个读错误,没有意义。JSON应该反序列化并自动加载到类实例中 类别: class FilterMatrix { public int ID { get; set; } public int ParentID { get; set; } } 反序列化代码: string fileName = @"C:\Users\accounts.json"; FilterMatrix kernel = Js

我在C#中使用Newtonsoft JSON解析器。JSON的格式似乎正确,但我得到了一个读错误,没有意义。JSON应该反序列化并自动加载到类实例中

类别:

class FilterMatrix {
    public int ID { get; set; }
    public int ParentID { get; set; }
}
反序列化代码:

string fileName = @"C:\Users\accounts.json";
FilterMatrix kernel = JsonConvert.DeserializeObject<FilterMatrix>(File.ReadAllText(fileName));
错误:

Newtonsoft.Json.JsonReaderException: 'Unexpected character encountered while parsing value: {. Path 'Features', line 1, position 14.'

至少JSON的结构需要与您的类层次结构相匹配。工作示例:

class Program
{

    static void Main(string[] args)
    {
        var root = JsonConvert.DeserializeObject<Root>(File.ReadAllText("file.json"));
    }

}

public class Root
{
    public List<FilterMatrix> Features { get; set; }
}

public class FilterMatrix
{
    public int ID { get; set; }
    public int ParentID { get; set; }
}
类程序
{
静态void Main(字符串[]参数)
{
var root=JsonConvert.DeserializeObject(File.ReadAllText(“File.json”));
}
}
公共类根
{
公共列表功能{get;set;}
}
公共类过滤器矩阵
{
公共int ID{get;set;}
public int ParentID{get;set;}
}
谢谢你,吉恩

我基本上是在看到你的帖子时想到这个的。在一个班级里有多个班级,这对我来说从来都不是什么难事。我猜我假设会自动生成一个类数组:-/

JSON脚本:

{"Features":[{"ID":0,"ParentID":0},{"ID":0,"ParentID":0}]}
反序列化:

kernel = JsonConvert.DeserializeObject<FilterMatrix>(File.ReadAllText(fileName));

这个错误消息看起来有点奇怪,但是JSON看起来不像是代表FilterMatrix对象。我刚刚意识到我的类需要一个Features属性。它应该是集合类型吗?名单?
kernel = JsonConvert.DeserializeObject<FilterMatrix>(File.ReadAllText(fileName));
class FilterMatrix {
    private List<Feature> features = new List<Feature>();  
    public List<Feature> FeaturesList
    {
        get { return features; }
        set { features = value; }
    }
}

class Feature {
    public int ID { get; set; }
    public int ParentID { get; set; }
}
kernel.FeaturesList[0].ID