[英]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.