2017-01-18 19 views
0

コンマ区切りのデータがあります。角度js csv json配列への文字列

"HotelName","Remained","Date" 
"Maxx","4","Jun 26 2016" 
"Voyage","3","Jun 24 2016" 

これを以下のようにjson配列に変換する必要があります。私はどのように私のJavaScriptコードでそれを行うことができますか?

[ 
    { 
    HotelName:"Maxx", 
    Remained:"4", 
    Date:"Jun 26 2016" 
    }, 
    { 
    HotelName:"Voyage", 
    Remained:"3", 
    Date:"Jun 24 2016" 
    } 
] 
+0

これまでに何を試みましたか?質問する前に質問を調べましたか? – evolutionxbox

+0

今まで、angular.fromJson、JSON.parse、JSON.stringifyなどのanglejsメソッドのさまざまな組み合わせを試しました。 –

+0

http://techslides.com/convert-csv-to-json-in-javascript took me googleに2秒。 – evolutionxbox

答えて

0

Ceeateアレイvar data = new Array()のでdata_json = JSON.stringify(data)ように変換し、次いでこれdata.push({ item : value})ようにそれにデータをプッシュすると。私はそれを私のangularprojectsに使用します。

0

文字列なので、分割することができます。

var lines data.split('\n'); 
var array = []; 
if(lines.length > 0){ 
    var titles = lines[0].split(','); 
    for(var i=1; i<lines.length; ++i){ 
     var obj = lines[i].split(','); 
     var newItem = {}; 
     //you should check that titles and obj are of same length 
     for(var j=0, j<titles.length; ++j){ 
      newItem[titles[j]] = obj[j]; 
     } 
     array.push(newItem); 
    } 
} 
0

リモートサーバーからの応答は、文字列化されたJSONデータであると思います。

// Possible a CSV data string from your server; 
var csvData = "\"HotelName\",\"Remained\",\"Date\"\"Maxx\",\"4\",\"Jun 26 2016\",\"Voyage\",\"3\",\"Jun 24 2016\""; 

var NUMBER_OF_COLUMNS = 3; 
var columns = []; 
var arrayData = []; 

// Remove double quotations in csvData and convert it to the array; 
csvData = csvData.replace(/"/g, "").split(','); 
columns = csvData.slice(0, NUMBER_OF_COLUMNS); 
csvData = csvData.slice(NUMBER_OF_COLUMNS); 

var rowObject = {}; 
csvData.forEach(function(item, index) { 
    rowObject[columns[index % (NUMBER_OF_COLUMNS)]] = item; 
    if (index % (NUMBER_OF_COLUMNS) == 2) { 
    arrayData.push(rowObject); 
    rowObject = {}; 
    } 
}) 

console.log(arrayData); 
/* 
    [ 
    { 
     DataMaxx: "Voyage", 
     HotelName: "4", 
     Remained: "Jun 26 2016" 
    } 
    ] 
*/