如何将大字符串对象转换为键/值对块

how to convert large string object into chunk of key/value pair

本文关键字:转换 字符串 对象      更新时间:2023-09-26

我从一个文本文件中获取数据,即sample_resume.txt

Name: John Doe电话:(555)555-5555电子邮件:johndoe@example.com

客观web开发人员职业生涯中的Excel。

关键技能开发:HTML5, JavaScript, Bootstrap, AngularJS, ReactJS, CSS3, Media Queries, Development项目管理:JIRA, Bitbucket, Confluence, Git, GitHub

就业历史职位:初级Web开发人员公司:苹果公司时间:2015年6月至2016年9月*开发响应式企业网站*做了一些很酷的事情*领导团队关闭JIRA漏洞

,并使用控制器将其导入到我的angular项目中app.controller('MainController', function ($scope, $http) {

$http.get('../../documents/sample_resume.txt')
    .then(function (data) {
        $scope.info = data;

    }, function (error) {
        alert('error');
    });

});

我期望Json格式的输出分为数据的键值对,但输出是

{"data":"Name: John Doe 'r'nPhone: (555) 555-5555 'r'nEmail: johndoe@example.com'r'n'r' noobjective 'r'nExcel在web开发人员的职业生涯。'r'n'r'nKEY SKILLS'r'nDevelopment: HTML5, JavaScript, Bootstrap, AngularJS, ReactJS, CSS3, Media Queries, Development'r' n项目管理:JIRA, Bitbucket, Confluence, Git, GitHub'r'n'r' n工作经历'r'n'r'nTitle: Junior Web Developer'r'n company: Apple Inc.'r' ndate: 2015年6月至2016年9月'r'n*开发响应式企业网站'r'n*做了一些很酷的东西'r'n*带领团队关闭JIRA漏洞'r'n'r'n title: Web Development Intern 'r'n company: Google Inc.'r'nDates:2015年1月至2015年5月'r'n*为团队跑咖啡'r'n*团队最长的倒立桶纪录'r'n*曾经在团队建设活动中吃了82个纸杯蛋糕'r'n'r'n教育'r'n学位:工商管理硕士'r'n学校:密歇根州立大学'r'nGPA: 2.2'r'n专业:计算机科学'r'n辅修:饮酒"、"地位":200年,"配置":{"法":"获得","transformRequest":(null),"transformResponse":(null),"url":". ./. ./文件/sample_resume.txt","标题":{"接受":"application/json文本/平原,/ "}},"statusText":"OK"}

我需要的数据,分成键值对:{"姓名":"无名氏",电话:(555)555-5555}

好,如果将文本解析为键值对数组,并由文本中的":"分隔,则此代码将执行您想要的操作。然而,如果你真的控制这个文本文件输出,我会考虑把它变成一个json文件,具有你需要的确切结构。

我假设这里是AngularJS,因此把"kvp"数组放在作用域中。

var lines = response.data.split(''r'n'); //split by the newlines
$scope.kvp = [];
lines.forEach(function(line, index) {
  var pair = line.split(':'); //split by colon
  if (pair.length === 2) { //do we have a pair?
    $scope.kvp.push({
      key: pair[0],
      value: pair[1]
    });
  } else {
    if (index > 0) {
      if ($scope.kvp[$scope.kvp.length - 1]) {
        $scope.kvp[$scope.kvp.length - 1].value += pair[0]; //append last known pair
      }
    }
  }
});

这是一个工作的JSFiddle:https://jsfiddle.net/workingClassHacker/shL8od16/7/