2016-07-19 19 views
0

Ich möchte meine Eingabe JSON mit anderen JSON mit mustache zuordnen.JSON zu JSON Mapping mit Moustache

Mein Eingang JSON ist wie:

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

ich eine Vorlage will, in dem ich den Schnurrbart-Tags mit meinem Ausgang json kombinieren könnte.

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

Ich habe dies versucht, aber die Verwendung von Schnurrbart-Tag mit JSON geben mir Fehler. Ich habe versucht, die Vorlage zu definieren, ohne JSON.stringify zu verwenden, aber kein Glück!

Verwenden Sie nur Schnurrbart nur, da es die Anforderung ist, die tatsächliche Eingabe JSON ist ziemlich groß und kann es nicht auf die traditionelle Weise zuordnen.

+0

Was Ihre gewünschte Ausgabe ist? und warum Schnurrbart? Warum nicht nur normalen JavaScript-Code? –

+2

Möglicherweise möchten Sie Ihre Codeformatierung überprüfen. – evolutionxbox

+0

@TamasHegedus Meine gewünschte Ausgabe ist ein JSON in der Vorlage mit Schnurrbart-Tags mit relevanten Daten aus meiner Eingabe ersetzt JSON – Abhishek

Antwort

0

Meine gewünschte Ausgabe ist ein JSON in der Vorlage erwähnt mit dem Schnurrbart-Tags mit relevanten Daten aus meinem Eingang JSON ersetzt

Sie brauchen nicht Schnurrbart hier.

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

Ich muss es nur mit Schnurrbart tun, Dies ist nur ein Beispiel JSON meine tatsächliche JSON ist ziemlich groß kann nicht mit der traditionellen Technik zuordnen. – Abhishek

+0

Ich fürchte, das ist der härtere Weg und mehr fehleranfällig. Mal sehen was wir dagegen machen können –

+0

@Abhishek Moustache ist dazu nicht in der Lage. Sie können beispielsweise keine kommagetrennten Listen erzeugen. Alles, was Sie am Ende haben, ist 50% Boilerplate und Umgehungscode neben der Vorlage. siehe http://stackoverflow.com/questions/6114435/in-mustache-templating-is-there-e-elegant-way-of-expressing-a-comma-seperated-l –