2016-11-12 63 views
-2

我從一個文本文件,即sample_resume.txtangularjs - 如何大字符串對象轉換成鍵/值對塊

名稱數據:李四 電話:(555)555-5555 電子郵件:輸入johndoe @ example.com

目標 在Web開發人員職業生涯中的Excel。

關鍵技能 發展:HTML5,JavaScript的,引導,AngularJS,ReactJS,CSS3媒體查詢,發展 項目管理:JIRA,到位桶,合流,Git的,GitHub上

工作經歷 名稱:初級Web開發 公司:蘋果公司 日期:2015年6月至2016年9月 *開發響應企業網站 *做了一些很酷的東西 *全隊最高結清JIRA錯誤

和IMPO rted到我的角項目使用控制器 app.controller( 'MainController',函數($範圍,$ HTTP){

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


    }, function (error) { 

     alert('error'); 
    }); 

});

我預期JSON格式的輸出,以在所述數據的鍵值對被劃分,但輸出是

{「數據」:「姓名:John Doe的\ r \ nPhone:(555)555- 5555 \ r \ n電子郵件:[email protected] \ r \ n \ r \ n目標\ r \ n在網絡開發人員職業生涯中獲得大量成功。\ r \ n \ r \ nKEY SKILLS \ r \ n開發:HTML5,JavaScript,Bootstrap,AngularJS ,ReactJS,CSS3,媒體查詢,開發\ r \ n項目管理:JIRA,Bitbucket,Confluence,Git,GitHub \ r \ n \ r \ nEMPLOYMENT HISTORY \ r \ n標題:Junior Web Developer \ r \ n公司:Apple Inc. \ r \ n日期:2015年6月至2016年9月\ r \ n *開發響應式企業網站\ r \ n *做了一些很酷的事情\ r \ n *帶領團隊關閉JIRA錯誤\ r \ n \ r \ n標題:Web Development Intern \ r \ n公司:Google Inc. \ r \ n日期:2015年1月至2015年5月\ r \ n *前往咖啡爲團隊服務\ r \ n *團隊記錄最長的啤酒桶\ r \ n *一次在團隊建設活動期間吃了82杯蛋糕\ r \ n \ r \ n演示\ r \ nDegree:BBA \ r \ nSchool:Michigan州立大學\ r \ nGPA:2.2 \ r \ nMajor:Computer Science \ r \ nMinor:Drinking「,」status「:200,」config「:{」method「:」GET「,」transformRequest「:[null], 「transformResponse」:[null],「url」:「../../ documents/sample_resume.txt」,「headers」:{「Accept」:「application/json,text/plain,/」}} 「狀態文本」: 「OK」}

我需要的數據,分成喜歡的鍵值對: { 「名稱」: 「李四」, 電話:(555)555-5555}

+0

是什麼* 「的塊顯示」 *是什麼意思?生成輸出的代碼在哪裏?沒有更多細節,問題真的不清楚。你也可能沒有記錄響應對象的'data'屬性 – charlietfl

+0

這個json數據是你控制的嗎?或者您是否需要將數據屬性中的數據解析爲鍵值對? – Espen

+0

數據是正常文本。例如:姓名:John Doe 電話:(555)555-5555 電子郵件:[email protected] 目標 Excel在Web開發人員職業生涯中。 關鍵技能 發展:HTML5,JavaScript的,引導,AngularJS,ReactJS,CSS3媒體查詢,發展 項目管理:JIRA,到位桶,合流,Git的,GitHub上 工作經歷 名稱:初級Web開發 公司:蘋果公司 日期:2015年6月至2016年9月 *開發響應企業網站 *有沒有一些很酷的東西 *全隊最高結清JIRA錯誤 標題:Web開發實習生 –

回答

0

好的,如果將文本解析爲由t中的「:」分隔的鍵值對的數組他的文字,這段代碼會做你想做的。但是,如果你真的控制這個文本文件的輸出,我會考慮把它做成一個你需要的精確結構的json文件。

我在這裏asuming 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/

+0

謝謝Espen,使用「:」將它分成鍵值對是個好主意。我將進一步研究並將其轉換爲我需要的JSON格式。 –