我希望我为这个问题设定了一个合适的“标题”。让我分享一下蒙面的截图,告诉你我的意思:
由于XML数据的转换,我在左侧(A)有JSON格式的输出。我发现我需要专门包含“元素”符号才能正确创建文件的结构(必须与我动态循环和创建XML的方式有关)。但是,我需要的实际JSON格式输出结构在右侧(B)。不知何故,我需要删除“元素”符号......我猜它有点“崩溃”。 (同样,我试图避免重写创建XML的代码,而是能够将我的XML转换为我需要的JSON。)
行。因此我似乎不允许发布图片,所以我会尝试在文本中模拟一些内容。
这是我得到的:
JSON
productCategoriesList
element
{}
id=1
name=product type A
products
element
{}
id=A1
name=product A1
{}
id=A2
name=product A2
{}
id=2
name=product type B
products
element
{}
id=B1
name=product B1
等
这就是我需要的:
JSON
productCategoriesList
{}
id=1
name=product type A
products
{}
id=A1
name=product A1
{}
id=A2
name=product A2
{}
id=2
name=product type B
products
{}
id=B1
name=product B1
等
(我可能不需要告诉你我是一个黑客。因此,我感谢你的帮助和你的谦逊,因为你接受我的hacky-ness。)
谢谢!
答案 0 :(得分:0)
我没有看到截图,所以我主要猜测你要做什么以及你的数据是什么样的,但是你可以通过JSON结构来寻找包含“元素”键的任何节点,用“元素”的内容替换节点?
由于您还没有说明您使用的语言,我将使用JavaScript。
function collapse_elements(tree) {
// Helper function to do the recursion
function _collapse(node, parent, key) {
// we only need to modify this node if it can have children
if (typeof node === 'object') {
if (typeof node['element'] !== 'undefined' && parent) {
// If this node contains an 'element' property,
// replace this node with the value of 'element'.
node = node['element'];
parent[key] = node;
}
// Recursively apply this to all child nodes
for (var k in node) {
if (node.hasOwnProperty(k)) {
_collapse(node[key], node, k);
}
}
}
}
_collapse(tree, null, null);
return tree;
}