json 对象的完整路径

编程入门 行业动态 更新时间:2024-10-23 22:37:06
本文介绍了json 对象的完整路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试展平一个对象,其中键将是叶节点的完整路径.我可以递归地识别哪些是叶节点,但在尝试构建整个路径时卡住了.

样本输入:

{一:1,二: {三:3},四:{五:5,六: {七:7},八:8},九:9}

输出:

{一:1,'二三':3,'四.五':5,'四.六.七': 7,'四.八':8,九:9}

解决方案

您可以使用递归方法并收集对象的键.这个提议也寻找数组.

function getFlatObject(object) {函数迭代器(o,p){if (o && typeof o === 'object') {Object.keys(o).forEach(function (k) {iter(o[k], p.concat(k));});返回;}路径[p.join('.')] = o;}变量路径 = {};迭代器(对象,[]);返回路径;}var obj = {一:1,二:{三:3},四:{五:5,六:{七:7},八:8},九:9},路径 = getFlatObject(obj);console.log(path);

I'm trying to flatten an object where the keys will be the full path to the leaf node. I can recursively identify which are the leaf nodes but stuck trying to construct the whole path.

Sample Input:

{ one: 1, two: { three: 3 }, four: { five: 5, six: { seven: 7 }, eight: 8 }, nine: 9 }

Output:

{ one: 1, 'two.three': 3, 'four.five': 5, 'four.six.seven': 7, 'four.eight': 8, nine: 9 }

解决方案

You could use a recursive approch and collect the keys of the object. This proposal looks for arrays as well.

function getFlatObject(object) { function iter(o, p) { if (o && typeof o === 'object') { Object.keys(o).forEach(function (k) { iter(o[k], p.concat(k)); }); return; } path[p.join('.')] = o; } var path = {}; iter(object, []); return path; } var obj = { one: 1, two: { three: 3 }, four: { five: 5, six: { seven: 7 }, eight: 8 }, nine: 9 }, path = getFlatObject(obj); console.log(path);

更多推荐

json 对象的完整路径

本文发布于:2023-11-30 05:32:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1648890.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路径   对象   完整   json

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!