我是编程的初学者。我正在从文件中读取csv数据然后我需要将csv数据转换为json formate。 这是我的csv数据文件:
import { Component, OnInit } from '@angular/core';
import { AppDataService } from '../../services/app-data.service';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { NgForOf } from '@angular/common';
import { UserDetails } from '../../model/UserDetails';
import * as _ from 'underscore';
import { PaginationService } from '../../shared/pagination/pagination.service';
@Component({
selector: 'app-admin',
templateUrl: './admin.component.html',
styleUrls: ['./admin.component.scss']
})
export class AdminComponent implements OnInit {
private users: any[] ;
pager: any = {};
pagedItems: any[];
error = '';
page = 1;
constructor(private appDataService: AppDataService, private paginationService: PaginationService) {
}
ngOnInit() {
this.loadData();
}
loadData() {
this.appDataService.getUsers()
.subscribe(
data => {
//LOAD YOUR DATA
this.users = data ;
this.setPage(1);
},
error => {
this.error = 'Error in calling users!';
}
);
}
setPage(page: number) {
if (page < 1 || page > this.pager.totalPages) {
return;
}
if (isNaN(page)) {
page = 1;
}
this.pager = this.paginationService.getPager(this.users.length, page);
this.pagedItems = this.users.slice(this.pager.startIndex, this.pager.endIndex + 1);
}
}
我期待像这样的输出
batch_id ingredient_code quantity expiry_date
1 item1 1000 18-01-2019
1 item2 500 18-02-2019
2 item1 1000 18-01-2019
3 item2 1000 18-08-2019
4 item2 1000 18-01-2019
4 item1 1000 18-05-2019
4 item3 500 18-04-2019
5 item4 1000 18-01-2019
我期待的是批次ID应该显示单次,该批次ID的所有项目都应该添加到数组中。 提前致谢..... 抱歉英语不好
答案 0 :(得分:2)
您必须安装csvtojson节点模块,您可以通过键入以下内容来执行此操作:
npm install csvtojson --save
这应该在项目中创建一个node_modules目录,该目录将包含csvtojson所需的所有依赖项。
既然我们已经完成了所有设置,我们就可以开始实施了。在首选文本编辑器中打开项目并创建一个新的js文件。在此文件中添加以下代码。有关详细信息,请访问https://www.npmjs.com/package/csvtojson
//require the csvtojson converter class
var Converter = require("csvtojson").Converter;
// create a new converter object
var converter = new Converter({});
// call the fromFile function which takes in the path to your
// csv file as well as a callback function
converter.fromFile("./path-to-your-file.csv",function(err,result){
// if an error has occured then handle it
if(err){
console.log("An Error Has Occured");
console.log(err);
}
// create a variable called json and store
// the result of the conversion
var json = result;
// log our json to verify it has worked
console.log(json);
});
答案 1 :(得分:1)
Csv文件与js文件位于同一位置,安装节点模块 csvtojson
var csv = require("csvtojson");
csv().fromFile('a.csv').on("json",function(jsonArrayObj){
console.log(jsonArrayObj);
})
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以通过在节点模块中安装 csvtojson 并输入以下命令来实现它:
npm install csvtojson --save
您可以在from-csv-file-to-json-array上获得更多详细信息。
答案 4 :(得分:0)
2个步骤:
1)在终端中运行npm i -g csvtojson
。
2)在文件所在的终端中运行csvtojson source.csv > converted.json
。请注意,“ source.csv”是要转换的文件,“ converted.json”是要生成的文件。
有关文档,请参见here