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

Javascript angularjs-如何将大字符串对象转换为键/值对块,javascript,angularjs,arrays,json,object,Javascript,Angularjs,Arrays,Json,Object,我从一个文本文件(即sample_resume.txt)中获取数据 姓名:无名氏 电话:55555-5555 电邮:johndoe@example.com 客观的 在网络开发者的职业生涯中出类拔萃 关键技能 开发:HTML5、JavaScript、引导、AngularJS、ReactJS、CSS3、媒体查询、开发 项目管理:JIRA、Bitbucket、Confluence、Git、GitHub 就业史 标题:初级Web开发人员 公司:苹果公司。 日期:2015年6月至2016年9月 *开发响应

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

姓名:无名氏 电话:55555-5555 电邮:johndoe@example.com

客观的 在网络开发者的职业生涯中出类拔萃

关键技能 开发:HTML5、JavaScript、引导、AngularJS、ReactJS、CSS3、媒体查询、开发 项目管理:JIRA、Bitbucket、Confluence、Git、GitHub

就业史 标题:初级Web开发人员 公司:苹果公司。 日期:2015年6月至2016年9月 *开发响应迅速的公司网站 *做了一些很酷的事情 *带领团队关闭JIRA bugs

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

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


    }, function (error) {

        alert('error');
    });
})

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

{数据:名称:John Doe\r\n电话:555 555-5555\r\n电子邮件:johndoe@example.com\r\n\r\nOBJECTIVE\r\nWeb开发人员职业生涯中的一员。\r\n\r\nKEY技能\r\n开发:HTML5、JavaScript、引导、AngularJS、ReactJS、CSS3、媒体查询、开发\r\n项目管理:JIRA、Bitbucket、Confluence、Git、GitHub\r\n\r\n部署历史记录\r\n TITLE:Junior Web Developer\r\n公司:苹果公司。\r\n日期:2015年6月至2016年9月\r\n*开发了响应性的公司网站\r\n*做了一些很酷的事情\r\n*领导团队解决了JIRA的漏洞\r\n\r\n标题:Web开发实习生\r\n公司:谷歌公司。\r\n日期:2015年1月至2015年5月\r\n*为lon的团队记录喝咖啡\r\n*gest keg stand\r\n*曾在团队建设活动中吃过82个纸杯蛋糕\r\n\r\n教育\r\n格言:BBA\r\n学校:密歇根州立大学\r\nGPA:2.2\r\n主要:计算机科学\r\n小人物:饮酒,状态:200,配置:{method:GET,transformRequest:[null],transformResponse:[null],url:../documents/sample\u resume.txt,标题:{Accept:application/json,text/plain,/}},statusText:OK}

我需要数据,分成键值对,如: {姓名:John Doe,
电话:555 55-55 55 }

< P> OK,如果将文本解析成键值对数组,则在文本中拆分:该代码将按照您的需要进行操作。但是,如果您实际上控制了该文本文件的输出,我会考虑将其作为一个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
      }
    }
  }
});
下面是一个正在工作的JSFIDLE:

分块显示意味着什么?生成输出的代码在哪里?如果没有更多细节,问题就不清楚了。此外,您可能没有记录响应对象的数据属性。这是您控制的json数据吗?或者您需要将数据属性中的数据解析为键值对吗?数据是普通文本.示例:姓名:John Doe电话:555 555-5555电子邮件:johndoe@example.com目标:在网络开发人员职业生涯中脱颖而出。关键技能开发:HTML5、JavaScript、Bootstrap、AngularJS、ReactJS、CSS3、媒体查询、开发项目管理:JIRA、Bitbucket、Confluence、Git、GitHub就业历史标题:初级网络开发公司:苹果公司日期:2015年6月至2016年9月*开发了响应迅速的公司网站*做了一些很酷的事情*带领团队解决了JIRA的漏洞标题:Web开发Internued controller获取文件中的数据:app.controller'MainController',function$scope,$http{$scope.json='数据尚未加载';$http.get'../../documents/sample_resume.txt'。然后函数数据{$scope.info=Data;},函数错误{alert'error';};};很难理解这一点。建议阅读,然后用consice Details更新问题内容谢谢你,使用:将其拆分为键值对是个好主意。我将进一步研究这一点,并将其转换为我需要的JSON格式。