Конвертировать ini.txt в JSON в node.js - PullRequest
1 голос
/ 15 марта 2019

В настоящее время я сталкиваюсь со следующей проблемой:

Существует файл ini.txt для конкретной машины, помещенной в S3 Bucket, и затем запускается лямбда-выражение. ini.txt выглядит следующим образом:

1 | test
1sdf | test2
2sdf | abcdefghifsfd
sdfsdfsdf

, поэтому у нас есть id |сообщение но без разделителя в и, а иногда и сообщение настолько длинное, что ему нужно две строки.

Мне нужно преобразовать этот ini.txt в JSON Object .

Я уже могу получить содержимое ini в виде строки в моем скрипте.

У вас, ребята, есть идея, как решить эту проблему, или уже существует пакет узлов для этой проблемы??

Я ценю любую помощь.

Спасибо!

1 Ответ

0 голосов
/ 15 марта 2019

Я написал код для вас:

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))
...