Недавно я нашел ответ на этот пост хорошим решением проблемы, с которой я столкнулся, и теперь я могу взять большой JSON-ответ с объектами $ ref внутри него и проанализировать его, чтобы я мог на самом деле добраться до этих $ refсвойства.Однако я сталкиваюсь с проблемой, когда пытаюсь отправить сплющенный назад на сервер, с которым я работаю.Это работает нормально, если я извлекаю JSON с сервера и отправляю обратно с той же структурой $ ref, которая была у него изначально, поэтому мой вопрос в том, знает ли кто-нибудь хороший способ вернуть этот код обратно в исходную форму, сохранив все значения, которые я изменил?Любая помощь очень ценится.
Разбор JSON (доступ к $ Ref) Угловой
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;
}