gpt4 book ai didi

json - 流畅的嵌套json解析

转载 作者:行者123 更新时间:2023-12-03 16:38:52 24 4
gpt4 key购买 nike

我有如下日志:

{
"log": {
"header": {
"key": "value",
"nested": "{\"key1\":\"value\",\"key2\":\"value\"}",
"dateTime": "2019-05-08T20:58:06+00:00"
},
"body": {
"path": "/request/path/",
"method": "POST",
"ua": "curl/7.54.0",
"resp": 200
}
}
}

我正在尝试使用 fluentd 聚合日志,并且我希望整个记录都是 JSON。具体问题是“$.log.header.nested”字段,它是一个JSON字符串。如何解析该字符串并将其替换为其内容?

为清楚起见,我希望 fluentd 输出的日志如下所示:
{
"log": {
"header": {
"key": "value",
"nested": {
"key1": "value",
"key2": "value"
},
"dateTime": "2019-05-08T20:58:06+00:00"
},
"body": {
"path": "/request/path/",
"method": "POST",
"ua": "curl/7.54.0",
"resp": 200
}
}
}

我找到了一种将嵌套字段解析为 JSON 的方法,但存储回它解析的同一个键尚不清楚。好像不是 hash_value_field支持存储到嵌套键。有没有其他方法可以做到这一点?

最佳答案

以下配置似乎完成了我想要的。但是,我不确定这是否是最好的方法。我认为使用 ruby​​ 的性能要低得多。欢迎对此进行任何改进。

<filter logs>
@type parser
key_name "$.log.header.nested"
hash_value_field "parsed_nested"
reserve_data true
remove_key_name_field true
<parse>
@type json
</parse>
</filter>

<filter logs>
@type record_transformer
enable_ruby true
<record>
parsed_nested ${record["log"]["header"]["nested"] = record["parsed_nested"]}
</record>
remove_keys parsed_nested
</filter>

关于json - 流畅的嵌套json解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com