javascript - 将 csv 解析为 json,然后使用 Gulp 将数据注入(inject)到 javascript 文件中

标签 javascript json csv gulp

我有 CSV 数据,需要将其转换为 JSON,然后注入(inject)到脚本中。我有一个部分工作的解决方案,但它将 [object, object] 而不是实际的 json 数据注入(inject)到我的最终脚本中。

响应应该是一个对象数组(似乎是当我将数据记录到控制台时)。如果我对数据进行 typeof 测试,它会返回 object

更新:

gulp-replace 必须将一个字符串替换为另一个字符串,这可以解释为什么我得到 [Object object]。我需要找到另一种方法来注入(inject) JSON。

我尝试使用gulp-preprocess,但在输出文件夹中使用[Object object]得到了相同的结果。

Gulpfile

var gulp = require('gulp');
var replace = require('gulp-replace');
var Converter = require("csvtojson").Converter;
var converter = new Converter({});

// Read data.csv, parse to JSON
gulp.task('replace', function() {
  require("fs").createReadStream("./data.csv").pipe(converter);
  converter.on("end_parsed", injectJSON);
});

// Inject JSON into script.js
function injectJSON(json) {
  return gulp.src('src/script.js')
    .pipe(replace('[\'json\']', json))
    .pipe(gulp.dest('js'));
}

gulp.task('default', ['replace']);

脚本

(function () {
  var permits = ['json']; // <- replace this with JSON data
})();

输出

(function () {
  var permits = [object Object],[object Object],[object Object],[object Object]...
})();

最佳答案

尝试字符串化您要注入(inject)的内容:

function injectJSON(json) {
  return gulp.src('src/script.js')
    .pipe(replace("['json']", JSON.stringify(json)))
    .pipe(gulp.dest('js'));
}

关于javascript - 将 csv 解析为 json,然后使用 Gulp 将数据注入(inject)到 javascript 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33809438/

相关文章:

javascript - 不变是什么意思?

Javascript:getAttribute() 返回对象 NodeList?

linux - 使用 wget 自动打开 URL 并保存它们

python - CSV 导入循环重复次数

javascript - !!(new Number(0)) == true,但是 !!(Number(0)) == false,为什么?

javascript - 仅当 div 的该区域*位于另一个 div 下方时,如何激活 css 样式?可能的?

json - 将字符串转换为 JSON 导致问题

php - Symfony JsonResponse 与序列化器

python - 无法获取json中存储的某些项目的对应值

python - 使用 Pandas 编辑 CSV 文件中的数据