C# JObject解析器停止执行而不给出任何输出或错误

C# JObject解析器停止执行而不给出任何输出或错误,c#,jquery,json,parsing,json.net,C#,Jquery,Json,Parsing,Json.net,我试图用以下代码解析webapi的JSON结果: var pemail = "tonys@gmail.com"; var _pid = GetRequest(Global.token, apiBaseUri, apiGetPerson +"?pemail="+ pemail).Result; var pid = JObject.Parse(_pid).GetValue("perso_nid").ToString(); MessageBox.Show(pid); 当我运行它时,它只是完成执行,没

我试图用以下代码解析webapi的JSON结果:

var pemail = "tonys@gmail.com";
var _pid = GetRequest(Global.token, apiBaseUri, apiGetPerson +"?pemail="+ pemail).Result;
var pid = JObject.Parse(_pid).GetValue("perso_nid").ToString();
MessageBox.Show(pid);
当我运行它时,它只是完成执行,没有任何输出或错误

在调试期间,
var\u pid
获取正确的值

[{"person_id":1141,
"person_fname":"Tony",
"person_lname":"Stark",
"person_initials":"IM",
"person_mono":"1234567890",
"person_pemail":"tonys@gmail.com",
"status":"0",
"db_tstamp":"2020-01-08T22:03:08.9659938"}]

但在下一行,它只是停止执行,不转到下一行。没有输出或错误。

问题中显示的JSON是包含对象的数组,而不是对象。要解析它并从第一个数组条目中提取
person\u id
的值,请与一起使用:

或者,用于强制根值实际上是一个数组:

var pid = JArray.Parse(_pid)[0]?["person_id"]?.ToString();
请注意,JSON属性名称是
“person\u id”
而不是
“perso\u nid”
;请确保在代码中使用正确的名称


演示小提琴。

问题末尾显示的JSON是一个包含对象的数组,而不是一个对象。要解析它并从第一个数组项中提取
person\u id
的值,请使用
JToken.parse(\u pid).SelectToken(“[0].person\u id”)?.ToString()
@dbc oh Yes。它解决了。谢谢你,伙计。
var pid = JArray.Parse(_pid)[0]?["person_id"]?.ToString();