避免重复使用JSON

时间:2017-05-18 14:02:26

标签: json graph

当你有一个javascript对象树,其中一些分支重复时,是否有一个工具可以输出它而不重复?

示例:

情况:

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

其中输出将包含a两次的整个JSON

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

情况为:

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

其中输出将包含a

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

我瞥了一眼falcor的json图,但我没有深入挖掘,留下的印象是它最终不会让我将现有对象转换为优化对象JSON。

1 个答案:

答案 0 :(得分:0)

我创建了一个将对象转换为新对象的函数,它是前者的表示,包括{ $ref: **json pointer** },其中有循环。它还不完美(优化,特殊角色的支持可以逃脱),但它能够满足我当前的需求。

可在NPM上找到,源代码位于GitHub