将.txt文件转换为JSON

7
我想把一个相当无组织和不结构化的文本文件转换为JSON格式,以便使用城市ID信息。有没有办法将其转换为JSON?
更新:一段时间后我也找到了这个解决方案。非常简单的方法可以获得任何制表符分隔的文本文件的JSON。 https://shancarter.github.io/mr-data-converter/

请注意,.txt 是一个扩展名,而 json 是一种数据格式。为了将任何东西转换为 json 格式,必须存在某种关系,如键值对、表列等。非结构化文本文件不能直接转换为 json 格式。 - Abhinay
除此之外,请将您到目前为止所做或尝试的事情写在问题中。 - Abhinay
1
所以如果我找到一个看起来像城市名称:城市ID的.txt文件,那么它就可以被转换成正确的格式了吗? - user6885321
2个回答

4
你可以尝试使用tsv2json这个工具,它可以从标准输入中读取tsv文件,并将json文件写入标准输出。
它是以源代码形式分发的,要编译它,您需要下载D编译器,然后运行dmd tsv2json.d
如果您有更复杂的任务,还有另一个名为tsv-utils的工具。

不知道这些都是什么意思,但至少现在我有了一个起点。谢谢。 - user6885321
如果您没有编程经验,可以从阅读这本书开始:http://ddili.org/ders/d.en/ 您的任务非常简单。您只需要基础知识即可。 - Dmitry Bubnenkov
好的,我希望有一种方法可以将文本文件中的无组织字符串转换为JSON格式。一种可以创建结构的方式...所以我会研究一下这个。谢谢你。 - user6885321

1

在nodejs中将TSV转换为JSON

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));
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接