Преобразование файла .txt в JSON

#json #api #type-conversion

#json #API #тип-преобразование

Вопрос:

Я хочу преобразовать довольно неорганизованный и неструктурированный текстовый файл в формат JSON. Я хочу иметь возможность использовать информацию об идентификаторе города. Могу ли я в любом случае преобразовать это в JSON?

ОБНОВЛЕНИЕ: я также нашел это решение через некоторое время. Очень простой способ получить JSON любого текстового файла, разделенного табуляцией.

https://shancarter.github.io/mr-data-converter/

Комментарии:

1. Пожалуйста, поймите .txt , что это расширение и json формат данных. для преобразования чего-либо json в должно быть какое-то отношение, например key-value , pair и table-column т. Д. неструктурированный текстовый файл нельзя напрямую преобразовать в json формат.

2. Кроме того, пожалуйста, также напишите, что вы делали или пробовали до сих пор в вопросе

3. Итак, если я найду файл .txt, который выглядит как cityname: CityId, вниз по списку. Тогда это можно было бы преобразовать, верно?

Ответ №1:

Вы можете попробовать использовать tsv2json этот инструмент может считывать файл tsv из стандартного файла и записывать файл json в стандартный вывод.

Он распространяется в исходном файле, для его компиляции вам нужно загрузить общий компилятор и затем запустить dmd tsv2json.d .

Если у вас более сложная задача, есть другой инструмент с именем tsv-utils

Комментарии:

1. Понятия не имею, что все это значит, но, по крайней мере, теперь у меня есть отправная точка. Спасибо.

2. Если у вас нет опыта в программировании, вы можете начать с чтения этой книги ddili.org/ders/d.en Ваша задача очень проста. Вам нужны только базовые знания

3. Хорошо, я надеялся, что есть способ преобразовать неорганизованные строки в текстовом файле в формат JSON. Способ, который позволил бы создать структуру… итак, я рассмотрю это. Спасибо вам

Ответ №2:

Преобразование TSV в JSON в nodejs

 var file_name = 'city_list.txt';

var readline = require('readline');
var fs = require('fs');

var lineReader = readline.createInterface({
    input: fs.createReadStream(file_name)
});

var isHeader = false;
var columnNames = [];

function parseLine(line) {
    return line.trim().split('t')
}

function createRowObject(values) {
    var rowObject = {};

    columnNames.forEach((value,index) => {
        rowObject[value] = values[index];
    });

    return rowObject;
}

var json = {};
json[file_name] = [];

lineReader.on('line', function (line) {
    if(!isHeader) {
        columnNames = parseLine(line);
        isHeader = true;
    } else {
        json[file_name].push(createRowObject(parseLine(line)));
    }
});

lineReader.on('close', function () {
    fs.writeFileSync(file_name   '.json', JSON.stringify(json,null,2));
});