【发布时间】:2020-08-10 19:45:08
【问题描述】:
使用如下所示的 JSON 结果。我正在尝试从“ActionId”中获取值,在这种情况下为“b0160455-e9d5-4692-850e-4958c8c45f8c”
渲染到 Razor 页面列表视图时,我需要在 foreach 循环中访问此值。
到目前为止,我已经能够访问第一级对象:
例子:
@foreach (var item in Model.LogEvents.EventEntities)
{
@Html.DisplayFor(modelItem => item.Level)
}
但我无法计算出从这个 JSON 结果中的嵌套数组“属性”中获取值所需的代码:
{
"lastReadEventId": "event-58cc86503c8d08d8313d010000000000",
"scannedEventCount": 1,
"eventEntities": [
{
"timestamp": "2020-08-09T18:55:05.0779216+01:00",
"properties": [
{
"name": "SourceContext",
"value": "WebApp_RAZOR.Pages.Logs.IndexModel"
},
{
"name": "ActionId",
"value": "b0160455-e9d5-4692-850e-4958c8c45f8c"
},
{
"name": "ActionName",
"value": "/Logs/Index"
},
{
"name": "RequestId",
"value": "0HM1SHK90IVGB:00000001"
},
{
"name": "RequestPath",
"value": "/Logs/Index"
},
{
"name": "SpanId",
"value": "|e7eeae4d-4d24315c2124a72d."
},
{
"name": "TraceId",
"value": "e7eeae4d-4d24315c2124a72d"
},
{
"name": "ParentId",
"value": ""
},
{
"name": "MachineName",
"value": "DESKTOP-OS52032"
},
{
"name": "ProcessId",
"value": 22676
},
{
"name": "ThreadId",
"value": 14
}
],
"messageTemplateTokens": [
{
"text": "superadmin@hjbuybub.onmicrosoft.com requested the Index page"
}
],
"eventType": "$DA057814",
"level": "Information",
"renderedMessage": "superadmin@gegerggere.onmicrosoft.com requested the Index page",
"id": "event-5345465467567b575675",
"links": {
"Self": "api/events/event-55b5456yubu5u67ub7u5{?download,render,clef}",
"Group": "api/events/resources"
}
}
]
}
从 json 结果派生的类:
public class LogEvents
{
public string LastReadEventId { get; set; }
public int ScannedEventCount { get; set; }
public EventEntity[] EventEntities { get; set; }
}
public class EventEntity
{
public DateTime Timestamp { get; set; }
public Property[] Properties { get; set; }
public MessageTemplateToken[] MessageTemplateTokens { get; set; }
public string EventType { get; set; }
public string Level { get; set; }
public string RenderedMessage { get; set; }
public string Id { get; set; }
public Links Links { get; set; }
}
public class Links
{
public string Self { get; set; }
public string Group { get; set; }
}
public class Property
{
public string Name { get; set; }
public object Value { get; set; }
}
public class MessageTemplateToken
{
public string Text { get; set; }
}
我在这里尝试过其他问答,但每个人的要求总是不同的并且卡住了。
【问题讨论】:
-
你是否做过“将 json 粘贴为类”/使用 QuickType.io 从 json 生成类?
-
我确实使用编辑将 json 结果粘贴到类中,然后在 Visual Studio 中粘贴特殊。如果这有帮助,只需将它们添加到我的 Q...