2017-05-18 4 views
0

Wenn Sie eine Javascript-Objektstruktur haben, wo einige Zweige wiederholt werden, gibt es ein Werkzeug, das es ohne die Wiederholung ausgeben könnte?Vermeiden Sie die Wiederholung in JSON

Beispiel:

Situation wie:

var a = new MyHugeObject(); 
var b = "Hello world!"; 
var c = 42; 
var result = { main: a, all: [a, b, c] }; 
console.log(someMagic(result)); 
:

var a = new MyHugeObject(); 
var b = "Hello world!"; 
var c = 42; 
var result = { main: a, all: [a, b, c] }; 
console.log(JSON.stringify(result)); 

wo Ausgabe die ganze JSON von a zweimal

{main:/* lot of json removed*/,all:[/* same lot of json removed*/,"Hello world!",42]} 

sitution enthalten würde seinwo Ausgabe die ganze JSON von a

{main:/* lot of json removed*/,all:reference-to-main,"Hello world!",42]} 

Ich nahm einen Blick auf Falcor der json Graph enthalten würde, aber ich habe nicht sehr tief graben und wurde mit dem Eindruck, dass es nicht irgendwann würde mich nur lassen konvertieren ein vorhandenes Objekt zu einem optimierten json.

Antwort

0

Ich habe eine Funktion erstellt, um das Objekt in ein neues zu konvertieren, das die Darstellung des ersten einschließlich { $ref: **json pointer** } darstellt, wo es Zyklus gibt. Es ist noch nicht perfekt (Optimierung, Unterstützung von Sonderzeichen, um zu entkommen), aber es macht einen Job, der gut genug für meinen aktuellen Bedarf ist.

Es ist auf NPM verfügbar und der Quellcode ist auf GitHub.

Verwandte Themen