Tengo una matriz de json en mi respuesta.
{"took":0,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":51,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"log4j-2022.01.25","_type":"log4j_type","_id":"x5AWkX4BkHwsqoJA8hbA","_score":1.0,"_source":{"@timestamp":"2022-01-25T11:55:07.221Z","commands":"wc,trim,uniq,sort","message":"2022-01-25 17:25:06 wc,trim,uniq,sort sharon","@version":"1","host":"sharon","time":"2022-01-25 17:25:06","username":"sharon","path":"/home/sharon/Log/Logging.log"}}, [{"_index":"log4j-2022.01.25","_type":"log4j_type","_id":"yJAXkX4BkHwsqoJAAhZi","_score":1.0,"_source":{"@timestamp":"2022-01-25T11:55:11.224Z","commands":"wc,sort,trim,uniq","message":"2022-01-25 17:25:10 wc,sort,trim,uniq sharon","@version":"1","host":"sharon","time":"2022-01-25 17:25:10","username":"sharon","path":"/home/sharon/Log/Logging.log"}}, ...]}}Solo quiero el nombre de usuario y el campo de comandos de cada objeto json. He obtenido los datos usando axios. ¿Cómo puedo hacerlo?
const query = { query: { match_all: {}, }, _source: ["time"], }; axios .get("http://localhost:9200/log4j-2022.01.25/_search", query) .then((res) => { console.log(res.data); });Muy apreciado
Parece que hay un [ flotando en su JSON que no pertenece allí. Si este es realmente el caso, entonces este código recuperaría el nombre de usuario y las propiedades de los comandos:
let result = res.data.hits.hits.map( ({_source: {commands, username}}) => ({commands, username}) ); Para los datos de muestra dados, esto establecerá el result en:
[ { "commands": "wc,trim,uniq,sort", "username": "sharon" } { "commands": "wc,sort,trim,uniq", "username": "sharon" } ]const { hits } = res.data.hits const remapped = hits.map((element) => ({commands: element._source.commands, username: element._source.username}))