无法获取nest.propertyname以考虑嵌套

snz8szmq  于 2021-06-09  发布在  ElasticSearch
关注(0)|答案(1)|浏览(316)

我有一个弹性的条目,由一些重叠的属性组成,比如

{
    "_source":
    {
        "pipeline_version":1.7,
        "agent":{
            "hostname":"SFPWEW11616",
            "id":"a1df2f4e-6dde-43fd-8af6-b3726124fdf7",
            "type":"winlogbeat",
            "ephemeral_id":"78be9770-dab9-4c56-a67e-b1a372a2f899",
            "version":"7.5.1"
        }
    }, [...]
}

我想让我的poco代表这个物体的一个平面vie。根据我在文件中发现的,我试着做了一些类似

Friend Class ElasticEventLogEntry
  <Nest.PropertyName("agent.hostname")>
  Public Property AgentHostName As String
  [...]
End Class

但不管我怎么尝试,值总是空的。我见过其他一些帖子使用nestedattribute属性,但从我所能找到的情况来看,这只在我们还想在poco结构中创建嵌套对象时才有用,这不是我的情况。我错过了什么?

0dxa2lsx

0dxa2lsx1#

你不可能做你想做的事情,至少在没有为你的用户编写你自己的json序列化的情况下是不可能的 ElasticEventLogEntry 类型和连接 JsonNetSerializer .
一个更好的方法是建模 ElasticEventLogEntry 不同地

Public Class ElasticEventLogEntry
    <DataMember(Name:="pipeline_version")>
    Public Property PipelineVersion As String
    Public Property Agent As Agent
End Class

Public Class Agent
    Public Property Hostname As String
    Public Property Id As String
    Public Property Type As String
    <DataMember(Name:="ephemeral_id")>
    Public Property EphemeralId As String
    Public Property Version As String
End Class

然后代理主机名将反序列化为 .Agent.Hostname

相关问题