在 node.js 中将 ini.txt 转换为 JSON
Convert ini.txt to JSON in node.js
我目前面临以下问题:
将特定机器的 ini.txt 推入 S3 存储桶,然后触发 lambda。 ini.txt 看起来像这样:
1 | test
1sdf | test2
2sdf | abcdefghifsfd
sdfsdfsdf
所以我们有一个 id | message 但在 and 处没有定界符,有时消息太长以至于需要两行。
我需要将此 ini.txt 转换为 JSON 对象。
我已经能够在我的脚本中获取 ini 的内容作为字符串。
你们知道如何解决这个问题吗?或者是否已经有针对该问题的节点包?
感谢您的帮助。
谢谢!
我为你写了代码:
const { readFileSync } = require('fs')
const data = readFileSync('ini.txt', 'utf8').split(/[\n\r]/)
const result = {}
let prev = {}
let preKey
data.forEach(line => {
const key = line.split('|')[0]
const value = line.split('|')[1]
const _ = {}
if (!value) {
prev[preKey] += key
result[preKey] = prev[preKey]
} else {
result[key] = value
}
_[key] = value
prev = _
preKey = key
})
console.log(JSON.stringify(result))
我目前面临以下问题:
将特定机器的 ini.txt 推入 S3 存储桶,然后触发 lambda。 ini.txt 看起来像这样:
1 | test
1sdf | test2
2sdf | abcdefghifsfd
sdfsdfsdf
所以我们有一个 id | message 但在 and 处没有定界符,有时消息太长以至于需要两行。
我需要将此 ini.txt 转换为 JSON 对象。
我已经能够在我的脚本中获取 ini 的内容作为字符串。
你们知道如何解决这个问题吗?或者是否已经有针对该问题的节点包?
感谢您的帮助。
谢谢!
我为你写了代码:
const { readFileSync } = require('fs')
const data = readFileSync('ini.txt', 'utf8').split(/[\n\r]/)
const result = {}
let prev = {}
let preKey
data.forEach(line => {
const key = line.split('|')[0]
const value = line.split('|')[1]
const _ = {}
if (!value) {
prev[preKey] += key
result[preKey] = prev[preKey]
} else {
result[key] = value
}
_[key] = value
prev = _
preKey = key
})
console.log(JSON.stringify(result))