如何获取数组的json值[重复]

问题描述 投票:0回答:1

我正在使用json,我想在控制台上输出AEVL2020或AEVL2021的数组,但出现错误“对象引用未设置为对象的实例”。我不知道是什么原因造成的,我想念什么实例?我关注了这个问题how to work with json object in c#,但似乎没什么用。

这是我的json:

{
    "registers":
    {
        "AEVL2020": [
            {
                "user_id": "1",
                "employee_id": "12",
                "name": "Juan Dela Cruz",
                "privilege": "0"
            },
            {
                "user_id": "2",
                "employee_id": "32",
                "name": "Pedro Dela Cruz",
                "privilege": "0"
            }
        ],
        "AEVL2021": [
            {
                "user_id": "1",
                "employee_id": "29",
                "name": "Maria Del Mundo",
                "privilege": "0"
            },
            {
                "user_id": "2",
                "employee_id": "222",
                "name": "Jay Del Mundo",
                "privilege": "0"
            }
        ]
    }
}

我的C#:

static void Main(string[] args)
{
    using (StreamReader r = new StreamReader("C:\\Users\\Admin\\source\\repos\\Practice1\\Practice1\\company1.json"))
    {
        string json = r.ReadToEnd();
        RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
        foreach (var registerDevices in obj.AEVL2020)
        { 
            Console.WriteLine(registerDevices.user_id + registerDevices.employee_id + registerDevices.name + registerDevices.privilege);
        }

        foreach (var registerDevices in obj.AEVL2021)
        {
            Console.WriteLine(registerDevices.user_id + registerDevices.employee_id + registerDevices.name + registerDevices.privilege);
        }

    }
}

public class CompanyRegisters
{
    public int user_id { get; set; }
    public int employee_id { get; set; }
    public string name{ get; set; }
    public int privilege { get; set; }
}

public class RootObject
{
    public List<CompanyRegisters> AEVL2020 { get; set; }
    public List<CompanyRegisters> AEVL2021 { get; set; }
}
c# json console-application
1个回答
1
投票

您的根与Json不匹配。它应该如下所示。

public class CompanyRegisters
{
    public int user_id { get; set; }
    public int employee_id { get; set; }
    public string name{ get; set; }
    public int privilege { get; set; }
}
public class RootObject
{
    public Registers registers{get;set;}
}
public class Registers
{
    public List<CompanyRegisters> AEVL2020 { get; set; }
    public List<CompanyRegisters> AEVL2021 { get; set; }
}
© www.soinside.com 2019 - 2024. All rights reserved.