• <i id='5h3F0'><tr id='5h3F0'><dt id='5h3F0'><q id='5h3F0'><span id='5h3F0'><b id='5h3F0'><form id='5h3F0'><ins id='5h3F0'></ins><ul id='5h3F0'></ul><sub id='5h3F0'></sub></form><legend id='5h3F0'></legend><bdo id='5h3F0'><pre id='5h3F0'><center id='5h3F0'></center></pre></bdo></b><th id='5h3F0'></th></span></q></dt></tr></i><div id='5h3F0'><tfoot id='5h3F0'></tfoot><dl id='5h3F0'><fieldset id='5h3F0'></fieldset></dl></div>
    <tfoot id='5h3F0'></tfoot>

      • <bdo id='5h3F0'></bdo><ul id='5h3F0'></ul>

      1. <legend id='5h3F0'><style id='5h3F0'><dir id='5h3F0'><q id='5h3F0'></q></dir></style></legend>
      2. <small id='5h3F0'></small><noframes id='5h3F0'>

        读取一堆 JSON 文件,转换它们并保存它们

        时间:2023-05-29
        <tfoot id='p4mhd'></tfoot>

              <i id='p4mhd'><tr id='p4mhd'><dt id='p4mhd'><q id='p4mhd'><span id='p4mhd'><b id='p4mhd'><form id='p4mhd'><ins id='p4mhd'></ins><ul id='p4mhd'></ul><sub id='p4mhd'></sub></form><legend id='p4mhd'></legend><bdo id='p4mhd'><pre id='p4mhd'><center id='p4mhd'></center></pre></bdo></b><th id='p4mhd'></th></span></q></dt></tr></i><div id='p4mhd'><tfoot id='p4mhd'></tfoot><dl id='p4mhd'><fieldset id='p4mhd'></fieldset></dl></div>

              <small id='p4mhd'></small><noframes id='p4mhd'>

              <legend id='p4mhd'><style id='p4mhd'><dir id='p4mhd'><q id='p4mhd'></q></dir></style></legend>
                  <bdo id='p4mhd'></bdo><ul id='p4mhd'></ul>
                    <tbody id='p4mhd'></tbody>
                • 本文介绍了读取一堆 JSON 文件,转换它们并保存它们的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  我正在尝试使用 Gulp 来实现这一点.

                  I'm trying to achieve this with Gulp.

                  1. 读取给定目录中的每个 .json 文件,包括子目录.
                  2. 以某种方式对其进行转换,例如添加新的根级别等.
                  3. 将它们保存到保持原始结构的新目录中.

                  我迷失的地方是如何通过管道读取/写入 JSON 到 src.

                  The point where I'm lost is how to pipe reading/writing JSON to src.

                  我现在有以下骨架.

                  gulp.task("migratefiles", function () {
                    return gulp.src("files/**/*.json")
                        .pipe(/* WHAT HERE? */)
                        .pipe(gulp.dest("processed"));
                  });
                  

                  推荐答案

                  有很多方法可以做到这一点:

                  There's a number of way you can do this:

                  (1) 使用 gulp-json-transform 插件:

                  var jsonTransform = require('gulp-json-transform');
                  
                  gulp.task("migratefiles", function () {
                    return gulp.src("files/**/*.json")
                      .pipe(jsonTransform(function(json, file) {
                        var transformedJson = {
                          "newRootLevel": json
                        };
                        return transformedJson;
                      }))
                      .pipe(gulp.dest("processed"));
                   });
                  

                  优点:

                  • 易于使用
                  • 支持异步处理(如果你返回一个 Promise)
                  • 允许访问每个文件
                  • 的路径

                  缺点:

                  • 只有基本的输出格式

                  (2) 使用 gulp-json-editor 插件:

                  var jeditor = require('gulp-json-editor');
                  
                  gulp.task("migratefiles", function () {
                     return gulp.src("files/**/*.json")
                       .pipe(jeditor(function(json) {
                         var transformedJson = {
                           "newRootLevel": json
                         };
                         return transformedJson;
                       }))
                       .pipe(gulp.dest("processed"));
                  });
                  

                  优点:

                  • 易于使用
                  • 自动识别您的输入文件使用的缩进(两个空格、四个空格、制表符等)并相应地格式化您的输出文件
                  • 支持各种js-beautify选项

                  缺点:

                  • 似乎不支持异步处理
                  • 似乎没有办法访问每个文件的路径

                  (3) 手动操作(直接访问 vinyl 使用 map-stream 的文件对象):

                  var map = require('map-stream');
                  
                  gulp.task("migratefiles", function () {
                     return gulp.src("files/**/*.json")
                       .pipe(map(function(file, done) {
                         var json = JSON.parse(file.contents.toString());
                         var transformedJson = {
                           "newRootLevel": json
                         };
                         file.contents = new Buffer(JSON.stringify(transformedJson));
                         done(null, file);
                       }))
                       .pipe(gulp.dest("processed"));
                  });
                  

                  优点:

                  • 完全控制/访问所有内容
                  • 支持异步处理(通过 done 回调)

                  缺点:

                  • 更难使用

                  这篇关于读取一堆 JSON 文件,转换它们并保存它们的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                • <i id='PhrCH'><tr id='PhrCH'><dt id='PhrCH'><q id='PhrCH'><span id='PhrCH'><b id='PhrCH'><form id='PhrCH'><ins id='PhrCH'></ins><ul id='PhrCH'></ul><sub id='PhrCH'></sub></form><legend id='PhrCH'></legend><bdo id='PhrCH'><pre id='PhrCH'><center id='PhrCH'></center></pre></bdo></b><th id='PhrCH'></th></span></q></dt></tr></i><div id='PhrCH'><tfoot id='PhrCH'></tfoot><dl id='PhrCH'><fieldset id='PhrCH'></fieldset></dl></div>

                    <tbody id='PhrCH'></tbody>

                        • <bdo id='PhrCH'></bdo><ul id='PhrCH'></ul>
                        • <tfoot id='PhrCH'></tfoot>
                        • <legend id='PhrCH'><style id='PhrCH'><dir id='PhrCH'><q id='PhrCH'></q></dir></style></legend>

                          • <small id='PhrCH'></small><noframes id='PhrCH'>