我有一个JSON,如下所示
var source = "{'Departments': {'Department': [{'DeptName': 'HR','Deptid': '9228590'},{'DeptName': 'Finance','Deptid': '9295426' }]}}";
我需要获取所有Deptid
和DeptName
我正在使用 Newtonsoft.Json 并尝试使用
using Newtonsoft.Json;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
GetInformation();
}
private static void GetInformation()
{
try
{
var source = "{'Departments': {'Department': [{'DeptName': 'HR','Deptid': '9228590'},{'DeptName': 'Finance','Deptid': '9295426' }]}}";
dynamic stuff = JsonConvert.DeserializeObject(source);
string DeptId = stuff.Deparments.Department[0].Deptid;
string DeptName = stuff.Deparments.Department[0].DeptName;
}
catch (Exception ex)
{
throw ex;
}
}
}
}
但是我得到Null Reference异常。
答案 0 :(得分:2)
您使用 Depid 而不是 Deptid
它应该是: string DeptId = stuff.Departments.Department [0] .Deptid;
答案 1 :(得分:1)
您的对象没有属性DeptId
,只有Depid
。此外,这些属性是嵌套的,所以我想你需要使用这样的东西:
string DeptId = stuff.Departments.Department[0].Depid;
string DeptName = stuff.Departments.Department[0].DeptName;
答案 2 :(得分:1)
试试这个
stuff.Departments.Department[0].DeptName
stuff.Departments.Department[0].Depid
这只是从Array中获取第一个元素的示例。您需要迭代数组以获取数组中所有对象的名称和ID。
答案 3 :(得分:0)
实际上,Objects
使用了错误的名称,例如Departments, Depid
。如果你更正了这个objects
名称,它将起作用。
string DeptId = stuff.Departments.Department[0].Deptid;
string DeptName = stuff.Departments.Department[0].DeptName;