【发布时间】:2015-06-11 20:30:36
【问题描述】:
我有一个如下格式的 Logstash 配置文件:
input {
twitter {
keywords => ["apples","bananas", "cherries",
"lettuce", "tomatoes"]
follows => ["@sirwebber"]
... additional parameters ...
}
}
output {
elasticsearch {
... similar types of configuration stuff ...
}
}
我想将其解析为 Node.js 中的 JSON 对象。所以我正在寻找类似的东西:
{
"input": {
"twitter": {
"keywords": ["apples","bananas","cherries","lettuce","tomatoes"],
"follows": ["@sirwebber"],
... additional parameters ...
}
},
"output": {
... similar format ...
}
}
我的第一次尝试是将文件作为字符串读取,然后解析换行符(在区分我对输入还是输出感兴趣之后)。然后我在 '=>' 上拆分,我能够创建一个带有所需键和值的 JavaScript 对象。
只要我的值不跨越多行,这种方法就有效。但是,我想确保解析器在一般情况下工作(可以包括数组中项目之间的空格)。
你对我应该怎么做有什么建议吗?我需要编写自己的解析器吗?如果是这样,关于如何编写这样的解析器,我应该参考什么好的资源?
【问题讨论】:
-
我不太了解 logstash 配置,但一种天真的方法是:1. 将所有出现的 "=>" 替换为 ":" 2. 当你遇到 "{" 字符时,如果它前面有一个不同于“:”的字符,则在前面加上“:”。
标签: javascript json node.js logstash