2016-07-19 9 views
0

mustacheを使用して、入力JSONと別のJSONをマッピングしたいとします。JSONとMustacheを使用した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

ご希望の出力は何ですか?なぜひどい口ひげですか?なぜ正規のjavascriptコードではないのですか? –

+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を参照してください。 –

関連する問題