我正在使用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; }
}
您的根与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; }
}