繁体   English   中英

ElasticSearch API解析嵌套字符串JSON仪表板

[英]ElasticSearch api parse nested string json dashboard

我正在使用ElasticSearch GET获取dashbaord的json文件:例如: http:// ES_IP:9200 / kibana-int / dashboard / my_Dashboard /

这将返回一个json文件,例如:

{"_index":"kibana-int","_type":"dashboard","_id":"my_Dashboard","_version":5,"found":true,"_source":{ "user":"guest", "group":"guest", "title":"my_Dashboard", "dashboard":"{ \"title\": \"My Dashboard\", \"services\": { \"query\": { \"list\": { \"0\": { \"id\": 0, \"type\": \"lucene\", \"query\": \"type:dh AND severity:ERROR AND (response.baseUrl:\"/rm/recordings/*\" OR request.baseUrl:\"/rm/recordings/*\")\", \"alias\": \"DH errors rcc\",.......

这是我需要您帮助的地方,如何获得键“ dashboard”的值,但键/值对中的转义“ \\”字符不影响转义值的一部分?

我需要的输出应该是这样的:

{ "title": "My Dashboard", "services": { "query": { "list": { "0": { "id": 0, "type": "lucene", "query": "type:dh AND severity:ERROR AND (response.baseUrl:\"/rm/recordings/*\" OR request.baseUrl:\"/rm/recordings/*\")", "alias": "DH errors rcc",.......

请注意查询键的值,其中有些\\“不应受到影响,因为它们是值的一部分。

我需要该输出,然后在我拥有的一些bash脚本中使用jq解析该json。

ElasticSearch api是否有一些过滤器可向我提供该输出? 还是您知道另一种获取我需要的外部方法?

非常感谢您的帮助。

fromjson是你的朋友。 例如:

def data: {
  "_index": "kibana-int",
  "_type": "dashboard",
  "_id": "my_Dashboard",
  "_version": 5,
  "found": true,
  "_source": {
    "user": "guest",
    "group": "guest",
    "title": "my_Dashboard",
    "dashboard": "{ \"title\": \"My Dashboard\", \"services\": { \"query\": { \"list\": { \"0\": \"foobar\" }}}}"
  }
};

data | ._source.dashboard | fromjson

输出:

$ jq -n -f elastic.jq
{
  "title": "My Dashboard",
  "services": {
    "query": {
      "list": {
        "0": "foobar"
      }
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM