Js: форматировать текстовые данные в json данные - PullRequest
0 голосов
/ 15 апреля 2020

Внутри моего приложения я загружаю некоторые текстовые данные из текстового файла :

этот текстовый файл выглядит следующим образом

conosle .log (myData):

### Comment 1

## Comment two
dataone=1
datatwo=2
## Comment N
dataThree=3

Я хочу отформатировать свои данные в json, чтобы

  • удалить все строки комментариев (начиная с #); а также пустые строки
  • с заменой всех = на:
  • добавление к моим атрибутам данных кавычек, что-то вроде этого
  • обернуть все внутри {}

Результат будет таким:

{
"dataone":"1"
"datatwo":"2"
"dataThree":"3"
}

Есть ли какой-нибудь фаствэй, чтобы это сделать?

1 Ответ

1 голос
/ 15 апреля 2020

Поскольку звучит так, как будто вы хотите что-то грубое и простое, как об этом:

let dataObject = myData
  // split line-by-line first
  .split('\n')
  // drop comments, keep lines with = 
  .filter(line => !line.startsWith('#') && line.includes('='))
  // convert to [key, value] pairs
  .map(line => line.split('='))
  // collect pairs into object
  .reduce((obj, [key, value]) => {
     obj[key] = value.trim();
     return obj;
  }, {});

let json = JSON.stringify(dataObject);

Недостатки

  • Дублирование ключей не допускается. Однако большинство реализаций библиотеки JSON также не принимают их.
  • Вы всегда получите строковые значения, даже если значение типа "3" может быть представлено как 3 в JSON.
  • Не было предпринято никаких попыток обеспечить обработку ошибок для случаев, не показанных в исходном примере txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...