当前位置: 首页 > 知识库问答 >
问题:

如何在javascript中将文本文件转换为json[关闭]

柏高洁
2023-03-14

我有一个如下的文本文件

id      nm              lat         lon         countryCode
819827  Razvilka        55.591667   37.740833   RU
524901  Moscow          55.752220   37.615555   RU
1271881 Firozpur        27.799999   76.949997   IN

我需要像下面的格式一样转换成json

[{"id":819827,"nm":"Razvilka","lat":55.591667,"lon":37.740833,"countryCode":"RU"},
{"id":524901,"nm":"Moscow","lat":55.752220,"lon":37.615555,"countryCode":"RU"},
{"id":1271881,"nm":"Firozpur","lat":27.799999,"lon":76.949997,"countryCode":"IN"}]

对于javascript应用程序。

myapp.controller('TCtrl', ['$scope', '$http', function($scope, $http) {
  $http.get('list.txt').success(function(data) {
    $scope.todos = JSON.parse(data);
    //console.log(data)
  });
}]);

共有1个答案

柳俊彦
2023-03-14

1) 通过拆分回车符(行)上的字符串,然后使用map返回基于空格上拆分的行的新数组,获取单元格数组。

var cells = str.split('\n').map(function (el) { return el.split(/\s+/); });

2) 标题是单元格中的第一个嵌套数组。

var headings = cells.shift();

3) 映射到单元上,根据值构建并返回新对象。

var obj = cells.map(function (el) {
  var obj = {};
  for (var i = 0, l = el.length; i < l; i++) {
    obj[headings[i]] = isNaN(Number(el[i])) ? el[i] : +el[i];
  }
  return obj;
});

4)对返回的对象进行字符串化。

var json = JSON.stringify(obj);

输出

[
  {
    "id": 819827,
    "nm": "Razvilka",
    "lat": 55.591667,
    "lon": 37.740833,
    "countryCode": "RU"
  },
  {
    "id": 524901,
    "nm": "Moscow",
    "lat": 55.75222,
    "lon": 37.615555,
    "countryCode": "RU"
  },
  {
    "id": 1271881,
    "nm": "Firozpur",
    "lat": 27.799999,
    "lon": 76.949997,
    "countryCode": "IN"
  }
]

演示

 类似资料:
  • 问题内容: 现在,我通过此行获取File对象: 我需要在base 64中通过json发送此文件。如何将其转换为base64字符串? 问题答案: 现代ES6方式 (异步/等待) UPD: 如果您想捕捉错误

  • 问题内容: 我需要将图像上传到NodeJS服务器到某个目录。我正在为此使用节点模块。 我使用以下代码将图片转换为Blob: 我需要一种将Blob转换为文件以上传图像的方法。 有人可以帮我吗? 问题答案: 此函数将a转换为a ,对我来说效果很好。 香草JavaScript TypeScript (具有正确的键入) 用法

  • 我需要上传一个图像到NodeJS服务器到一些目录。我使用的节点模块。 我拥有图像的,我使用以下代码将其转换为blob: 我需要一种方法来将blob转换为文件以上载图像。 有人能帮我吗?

  • 我需要在Base64中通过json发送这个文件。我应该怎么做才能将它转换为base64字符串?

  • 我想在Python脚本中使用SOX之类的工具将。PCM文件转换为。wav文件。该工具需要跨平台兼容(Windows和Linux)。有什么建议吗?

  • 问题内容: 我在尝试将文本文件转换为以逗号分隔的列表列表时遇到麻烦。基本上,我想要: 看起来像: 这是我到目前为止的代码: 但是,这使我得到以下结果: 我只希望能够删除该第一部分,然后将其替换为第二部分。我怎样才能做到这一点? 问题答案: 也许: