私の CSV データは次のようになります:
heading1,heading2,heading3,heading4,heading5
value1_1,value2_1,value3_1,value4_1,value5_1
value1_2,value2_2,value3_2,value4_2,value5_2
...
このデータを読み取り、JavaScript を使用して次のような配列に変換するにはどうすればよいでしょうか?
[
heading1: value1_1,
heading2: value2_1,
heading3: value3_1,
heading4: value4_1
heading5: value5_1
],[
heading1: value1_2,
heading2: value2_2,
heading3: value3_2,
heading4: value4_2,
heading5: value5_2
]
....
このコードを試してみましたが、うまくいきませんでした。
<script type="text/javascript">
var allText =[];
var allTextLines = [];
var Lines = [];
var txtFile = new XMLHttpRequest();
txtFile.open("GET", "file://d:/data.txt", true);
txtFile.onreadystatechange = function()
{
allText = txtFile.responseText;
allTextLines = allText.split(/\r\n|\n/);
};
document.write(allTextLines);
document.write(allText);
document.write(txtFile);
</script>
ベストアンサー1
自分で書く必要はありません...
jQuery -CSV$.csv.toObjects(csv)
ライブラリには、マッピングを自動的に実行する という関数があります。
注: このライブラリは、ほとんどの「単純な」ソリューションでは見落とされがちな厄介なエッジ ケースも含め、RFC 4180に準拠したあらゆる CSV データを処理するように設計されています。
@Blazemonger がすでに述べたように、データを有効な CSV にするには、まず改行を追加する必要があります。
次のデータセットを使用します。
heading1,heading2,heading3,heading4,heading5
value1_1,value2_1,value3_1,value4_1,value5_1
value1_2,value2_2,value3_2,value4_2,value5_2
次のコードを使用してください:
var data = $.csv.toObjects(csv):
「data」に保存される出力は次のようになります。
[
{ heading1:"value1_1",heading2:"value2_1",heading3:"value3_1",heading4:"value4_1",heading5:"value5_1" }
{ heading1:"value1_2",heading2:"value2_2",heading3:"value3_2",heading4:"value4_2",heading5:"value5_2" }
]
注: 技術的には、キーと値のマッピングを記述した方法は無効な JavaScript です。キーと値のペアを含むオブジェクトは、括弧で囲む必要があります。
自分で試してみたい場合は、「toObjects()」タブの「基本的な使用方法のデモンストレーション」をご覧になることをお勧めします。
免責事項: 私は jQuery-CSV のオリジナルの作成者です。
アップデート:
オペレーターが提供したデータセットを使用するように編集し、データの有効性をテストできるデモへのリンクを含めました。
アップデート2:
Google Codeの閉鎖に伴い、jquery-csvはGitHubに移動しました。