如何使用c#查找JObject中是否存在JToken



我从第三方服务接收到一个JObject对象,该对象包含以下显示的JSON:

{
{
"topic": "asd",
"id": "b87a5db6-01b5-4cc0-8fa7-832382ca3431",
"eventType": "update",
"subject": "/asd/task",
"eventTime": "12/18/2018 4:46:20 PM",
"data": {
"auditId": "-9223372036854771584",
"contextData": "{}",
"eventType": null,
"auditData": {
"taskId": "22BC1515-39DF-4124-89EB-AD1468572F20",
"user": "asd@ul.com",
**"reminderDate": null,
"startDate": null,
"dueDate": null,**
"taskStatusName": "NotScheduled"
}
},
"dataVersion": "",
"metadataVersion": "1"
}
}

此JObject可能有也可能没有以粗体突出显示的JToken。

我需要看看传入的JObject中是否存在这样的JToken。

如果他们在场,那么我需要从他们身上汲取价值。例如,这里存在reminderDate、startDate和dueDate JToken,因此我需要获取它们各自的值,在本例中为null。

如果JObject中不存在这些Jtoken,那么我需要从其他来源(如DB)获取值。

要获得类似startDate的属性,它将以字符串形式返回其值,如果找不到,则返回null

检查这个

string Text =
@"{
""topic"": ""asd"",
""id"": ""b87a5db6-01b5-4cc0-8fa7-832382ca3431"",
""eventType"": ""update"",
""subject"": ""/asd/task"",
""eventTime"": ""12/18/2018 4:46:20 PM"",
""data"": {
""auditId"": ""-9223372036854771584"",
""contextData"": ""{}"",
""eventType"": null,
""auditData"": {
""taskId"": ""22BC1515-39DF-4124-89EB-AD1468572F20"",
""user"": ""asd@ul.com"",
""reminderDate"": null,
""startDate"": null,
""dueDate"": null,
""taskStatusName"": ""NotScheduled""
}
},
""dataVersion"": """",
""metadataVersion"": ""1""
}"; 
JObject response = JObject.Parse(Text);
string startDate = (string) response ["data"]["auditData"]["startDate"];

相关内容

  • 没有找到相关文章

最新更新