1

我正在尝试添加一个可以为 null 或数组的 json 字段。

示例日志是;

04 Jun 2020 09:48:00,741 [32m[INFO] [m 4277a4fa-13fe-49f9-8348-9c515c988481  Class1: Method1: {"property1":"property1Value","property2":["string1", "string2"] , "property3": "property3Value"  }
04 Jun 2020 09:48:00,741 [32m[INFO] [m 4277a4fa-13fe-49f9-8348-9c515c988481  Class1: Method1: {"property1":"property1Value","property2":null , "property3": "property3Value"  }

目前我可以编写一个 grok 模式,如果属性 2 是数组,它可以提取

| parse "*property2*]*" as blah1, property2, blah2 

有没有办法我也可以在这里提取 null ?

操作系统有没有办法将 @message 转换为 json 对象?

4

1 回答 1

0

您可以使用(?:case1|case2)case1 或 case2。
对于您的示例:"property2":(?:null|\[(?<property2>.*?)])

这给出了:

输入"property2":["string1", "string2"](您的第一个日志行):
"property2": [[ ""string1", "string2"" ]]

输入"property2":null(您的第二个日志行):
"property2": [[ null ]]

您可以在http://grokdebug.herokuapp.com/对其进行测试

于 2020-07-17T11:20:18.183 回答