我有CSV数据需要转换为JSON然后注入脚本。我有一个部分工作的解决方案,但它将[object, object]
而不是实际的json数据注入到我的最终脚本中。
响应应该是一个对象数组(当我将数据记录到控制台时似乎是这样)。如果我对数据进行typeof
测试,则会返回object
。
gulp-replace
必须将一个字符串替换为另一个字符串,这可以解释为什么我得到[Object object]
。我需要找到另一种注入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]...
})();
答案 0 :(得分:1)
尝试stringify
您注射的内容:
function injectJSON(json) {
return gulp.src('src/script.js')
.pipe(replace("['json']", JSON.stringify(json)))
.pipe(gulp.dest('js'));
}