【发布时间】:2021-07-28 15:01:48
【问题描述】:
我有一个 json 日志,它扩展为:
JSON:
|-host : hostname
|-httpRequest
|-httpVersion : HTTP/1.1
|-headers
|-0
|-name: X-Forwarded-For
|-value: 1.1.1.1
|-1
|-name: X-Forwarded-Prot
|-value: https
|-2
|-name: X-Forwarded-Port
|-value: 443
|-httpMethod: post
|-action: allow
等等。
我想像这样重新格式化它:
JSON:
|-host : hostname
|-httpRequest
|-httpVersion : HTTP/1.1
|-headers
|-X-Forwarded-For : 1.1.1.1
|-X-Forwarded-Prot : https
|-X-Forwarded-Port : 443
|-httpMethod: post
|-action: allow
Split 将只取最后一个 [#] 名称/值,因为它会覆盖前一个。 我很确定这将需要一个 ruby 代码块,但我没有运气跟随我在网上找到的类似场景的 ruby 代码。
我认为这里的主要问题/与其他文章/答案的不同之处在于它不仅仅是纯粹的扁平化。但也需要重新排列 name:value 。
【问题讨论】:
-
我现在没有精力将其重写为答案,但可以在 here 找到所需的 ruby 过滤器。
-
谢谢。我在此线程上发布了另一个有效的帖子,但也会检查一下。