如何从字符串行解析 json 对象?
How to parse json object from string line?
我是 logstash 新手。我想使用 grok 将日志文件中的每一行解析为 json 对象。我的日志如下所示:
1570519737247 I access {"date":"2019-10-08T09:28:57.247","rootTitle":"title1","rootModel":"model1","dcTitle":"[1a]"}
1570519737247 I access {"date":"2019-10-08T09:28:57.247","rootTitle":"title2","rootModel":"model2","dcTitle":"[1b]"}
您可以看到每一行都以文本开头,然后是有效的 json 对象。
我想为每一行构造对象,如下所示:
{
"accesing": "1570519737247",
"message": {
"date":"2019-10-08T09:28:57.247",
"rootTitle":"title1",
"rootModel":"model1",
"dcTitle":"[1a]"
}
}
所以我想把开头的数字分配给"accesing"键,我不需要"I access"这个词,然后json对象给"message".
我在 grok 调试器 %{WORD:accesing} %{GREEDYDATA:message} 中尝试过这种模式,但当然这不是我需要的。拜托,有人可以帮忙吗?
使用这个:
%{WORD:accesing} I access %{GREEDYDATA:message}
输入:
1570519737247 I access {"date":"2019-10-08T09:28:57.247","rootTitle":"title1","rootModel":"model1","dcTitle":"[1a]"}
输出:
{
"accesing": [
[
"1570519737247"
]
],
"message": [
[
"{"date":"2019-10-08T09:28:57.247","rootTitle":"title1","rootModel":"model1","dcTitle":"[1a]"}"
]
]
}
我是 logstash 新手。我想使用 grok 将日志文件中的每一行解析为 json 对象。我的日志如下所示:
1570519737247 I access {"date":"2019-10-08T09:28:57.247","rootTitle":"title1","rootModel":"model1","dcTitle":"[1a]"}
1570519737247 I access {"date":"2019-10-08T09:28:57.247","rootTitle":"title2","rootModel":"model2","dcTitle":"[1b]"}
您可以看到每一行都以文本开头,然后是有效的 json 对象。
我想为每一行构造对象,如下所示:
{
"accesing": "1570519737247",
"message": {
"date":"2019-10-08T09:28:57.247",
"rootTitle":"title1",
"rootModel":"model1",
"dcTitle":"[1a]"
}
}
所以我想把开头的数字分配给"accesing"键,我不需要"I access"这个词,然后json对象给"message".
我在 grok 调试器 %{WORD:accesing} %{GREEDYDATA:message} 中尝试过这种模式,但当然这不是我需要的。拜托,有人可以帮忙吗?
使用这个:
%{WORD:accesing} I access %{GREEDYDATA:message}
输入:
1570519737247 I access {"date":"2019-10-08T09:28:57.247","rootTitle":"title1","rootModel":"model1","dcTitle":"[1a]"}
输出:
{
"accesing": [
[
"1570519737247"
]
],
"message": [
[
"{"date":"2019-10-08T09:28:57.247","rootTitle":"title1","rootModel":"model1","dcTitle":"[1a]"}"
]
]
}