2016-10-01 2 views
5

Я хочу преобразовать довольно неорганизованный и неструктурированный файл text в формат JSON. Я хочу иметь возможность использовать данные идентификатора города. Есть ли способ конвертировать это в JSON?Преобразование .txt-файла в JSON

UPDATE: Я также нашел это решение через некоторое время. Очень простой способ получить JSON любого текстового файла, разделенного вкладками.

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

+0

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

+0

Кроме того, напишите, что вы наделали или пробовали до сих пор в вопросе – Abhinay

+0

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

ответ

4

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

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

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

+0

Не знаю, что это значит, но по крайней мере сейчас у меня есть отправная точка. Благодарю. –

+0

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

+0

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

0

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)); 
}); 
Смежные вопросы