Reddy SK
Reddy SK

Reputation: 1374

How to handle attribute with @ in its name

I am facing to problem with Elasticsearch result which is using @ in attribute name. Snippet of json result:

{"_index":"logs-2015.12.31","_type":"log","_id":"AVH4eA4QKV0mbJuiIHO1","_score":null,"_source":{"@timestamp":"2015-12-31T14:36:35.378Z","beat":{"hostname":"

I need to interpret its value into jquery code. See the code snippet:

    case item._index.startsWith('logs-'):
        $('#results-list').append( '<a href="details.jsp?id=' + item._id + '" target="_blank" class="list-group-item">' 
            +    '<span class="label label-info">' + item._type + '</span>' 
            +    '<h4 class="list-group-item-heading">' + item._source.source + '</h4>' 
            +    '<p class="list-group-item-text">' + item._source.@timestamp + ' - ' + item._source.beat.name + '</p>'
            +    '<p class="list-group-item-text">' + item._source.message + '</p>'
            +  '</a>'

How to handle the attribute if I cannot change the source?

Upvotes: 1

Views: 90

Answers (1)

Rory McCrossan
Rory McCrossan

Reputation: 337637

The @ character cannot be used in a literal property name, hence you need to use array notation to access it:

item._source['@timestamp']

Upvotes: 8

Related Questions