2016-07-19 3 views
0

mustache을 사용하여 입력 JSON을 다른 JSON과 매핑하려고합니다.콧수염을 사용하여 JSON에서 JSON으로 매핑

내 입력 JSON과 같은 것입니다 :

{ 
    "data": [ 
    { "catalogId": "1850", "productId": "ELEC004A"}, 
    { "catalogId": "1851", "productId": "PNG679"} 
    ] 
} 

내가 내 출력 JSON으로 콧수염 태그를 결합 할 수있는 템플릿을합니다.

var template = JSON.stringify(
    { 
    Product: [ 
     {{#data}} 
     { 
     productId:'{{productId}}', 
     parentProductId:'{{catalogId}}' 
     } 
     {{/data}} 
    ] 
    } 
); 

나는 이것을 시도했지만 JSON으로 콧수염 태그를 사용하면 오류가 발생합니다. JSON.stringify 행운을 사용하지 않고 템플릿을 정의하려고했습니다!

콧수염 만 사용해야하므로 실제로 입력되는 JSON은 상당히 커서 전통적인 방식으로 매핑 할 수 없습니다.

+0

원하는 출력은 무엇입니까 ? 왜 콧수염 이요? 정규 자바 스크립트 코드가 아닌 이유는 무엇입니까? –

+2

코드 서식을 확인할 수 있습니다. – evolutionxbox

+0

@TamasHegedus 내 원하는 출력은 콧수염 태그가 입력 된 관련 데이터로 대체 된 템플릿에 언급 된 JSON입니다. JSON – Abhishek

답변

0

내 원하는 출력 내 입력 JSON 현재 콧수염이 필요하지 않습니다

에서 관련 데이터로 대체 콧수염 태그 템플릿에 언급 된 JSON입니다.

var input = { 
 
    "data": [ 
 
    { "catalogId": "1850", "productId": "ELEC004A"}, 
 
    { "catalogId": "1851", "productId": "PNG679"} 
 
    ] 
 
}; 
 

 
var output = { 
 
    Product: input.data.map(item => ({ 
 
    productId: item.productId, 
 
    parentProductId: item.catalogId 
 
    })) 
 
}; 
 

 
console.log(output);

+0

콧수염 만 사용하여이 작업을 수행해야합니다. 이것은 실제 JSON이 상당히 큰 샘플 JSON입니다. 전통적인 기법을 사용하여 매핑 할 수 없습니다. – Abhishek

+0

그게 더 힘들어하고 오류가 발생하기 쉬운 것 같습니다. 우리가 그것에 대해 무엇을 할 수 있는지 보자. –

+0

@Abhishek Mustache는 이것을 할 수 없다. 쉼표로 구분 된 목록을 생성 할 수 없습니다. 결국 템플릿과 함께 50 %의 상용구 및 해결 코드가 작성됩니다. http://stackoverflow.com/questions/6114435/in-mustache-templating-is-there-an-elegant-way-of-expressing-a-comma-seperated-l을 참조하십시오. –