如何在CSharp的两个层次上从JToken获取值

时间:2018-07-02 19:05:43

标签: c# json.net

我正在尝试从JToken对象获取lastName值。下面给出了使用JToken加载的数据和我已使用的C#代码。 lastName字段位于Person对象内。我能够获得顶级的id和clientId的值,而没有任何问题。

JToken loaded data:
{
      "id":"7f9c0978-3baf-0000-0000-0000482f0200",
      "clientId":234123,
      "employeeNumber":282,
      "person":{
         "id":"7f9c0978-3baf-0000-0000-0000482f0200",
         "clientId":143176,
         "firstName":"Brian",
         "middleName":"M",
         "lastName":"Anderson"
    },
       "manager":{
     "managerId": 124,
     "managerFirstName": "Jim",
         "managerLastName": "Jim"
    },
       "workPhone":"4045150315",
       "workEmail":"banderson@performltd.com"
}

使用CSharp代码访问人员对象中的lastName字段:

String employeeLastName = employeeData.Children().FirstOrDefault().Value<string>("lastName");

我收到无法访问子数据异常。

1 个答案:

答案 0 :(得分:3)

您可以使用JObject实现它,就像这样:

var jObject = JObject.Parse(jsonstring);
var lastName = jObject["person"]["lastName"].Value<string>();