如何反转JSON $ ref解析器?

时间:2018-11-15 15:28:56

标签: javascript json ref

我最近发现这篇文章的答案可以很好地解决我遇到的一个问题,现在我可以在其中包含$ ref对象来进行大型JSON响应并将其解析下来,这样我就可以真正访问这些$ ref属性。但是,当我尝试将展平的数据发送回正在使用的服务器时,我遇到了一个问题。如果我从服务器上提取JSON并使用与原始相同的$ ref结构发送回去,那么它会很好地工作,所以我的问题是,是否有人知道在保留我更改的任何值的同时将此代码恢复为原始格式的好方法?任何帮助将不胜感激。

Parsing JSON (accessing $Ref) Angular

this.fixReferences = function (json) {
    var tree = json;

    for (var x in tree) {
        if ((typeof (tree[x]) === 'object') && (tree[x] !== null)) {
            var result = dfsVisit(tree[x]);
            tree[x] = result;
        }
    }

    return tree;
}

function dfsVisit(tree) {
    for (var x in tree) {
        if ((typeof (tree[x]) === 'object') && (tree[x] !== null)) {
            var result = dfsVisit(tree[x]);
            tree[x] = result;
        }
    }
    if (tree["$ref"] !== undefined) {
        var ref = tree.$ref;
        if (elements[ref] !== undefined) {
            tree = elements[ref];
        }

    } else if (tree["$id"] !== undefined) {
        var element = tree;
        elements[element.$id] = element;
    }

    return tree;
}

0 个答案:

没有答案