2016-10-06 10 views
2

각각 다른 경로에있는 여러 개의 JSON 파일이 있습니다. 이제 모든 파일을 "grunt-concat-json"으로 연결하려고합니다.여러 개의 JSON 파일을 연결합니다.

소스 JSON 파일은 다음과 같이 찾고 있습니다 :

ExampleA.json

[ { 
    "configPath": "Example A" 
} ] 

에게 ExampleB.json

[ { 
    "configPath": "Example B" 
} ] 

어떻게 다음과 같은 결과를 얻을 내 고된 작업을 구성 할 수 있습니다 JSON 파일 :

[ 
    { 
     "configPath": "Example A" 
    }, 
    { 
     "configPath": "Example B" 
    } ] 

나는이 설정으로 시도했다 :
이 설정

concat: { 
json: 
    { 
     src: [ 
       'pathA/ExampleA.json', 
       'pathB/ExampleB.json 
      ], 
     dest: 'pathX/Merged.json', 
      options: { 
       separator: ',' 
      } 
     } 
    }, 

나는 결과 다음 얻을 :

[ 
    { 
     "configPath": "Example A" 
    } 
], 
[ 
    { 
     "configPath": "Example B" 
    } 
] 

하지만 내 결과를 JSON에만있는 내가 루프를 통해 수, ONE 배열을 가지고 있어야 내 코드에

configPaths.forEach(configPath) { ... } 
+1

그것은이에 대한 사용자 정의 툴툴 거리는 소리 작업을 쓰기 너무 어렵지 않을 것이다. http://gruntjs.com/creating-tasks를 확인하십시오. – techfoobar

답변

0

다음은 충분해야하는 매우 기본적인 제로 밸리데이션 구현입니다. 너를 시작하게.

grunt.registerMultiTask('concatArrays', 'concatArrays', function() { 
    this.files.forEach(function(_set) { 
     var combined = []; 
     _set.src.forEach(function(_file) { 
      combined = combined.concat(JSON.parse(grunt.file.read(_file))); 
     }); 
     grunt.file.write(_set.dest, JSON.stringify(combined)); 
    }); 
}); 

당신은 같은 파일 세트를 구성 할 수 있습니다

concatArrays: { 
    local: { 
     files: [{ 
      src: ['a.json', 'b.json'], 
      dest: 'combined.json' 
     }], 
    } 
}