Javascript将JSON对象迭代到infinte JSON对象值数组中

Javascript将JSON对象迭代到infinte JSON对象值数组中,javascript,json,for-loop,Javascript,Json,For Loop,我有一个JSON对象,其中包含无限级别的对象。我想构建一个JSON数组,其中包含一个键中的第一个键和另一个键中的所有关联值 例如,我的JSON如下所示 { doingnow: { "action items": { "open": { "child"....}, "In Progress": { "child"....}, "Completed": {

我有一个JSON对象,其中包含无限级别的对象。我想构建一个JSON数组,其中包含一个键中的第一个键和另一个键中的所有关联值

例如,我的JSON如下所示

{
    doingnow: {
        "action items": { "open": { "child"....}, "In Progress": { "child"....}, "Completed": { "child"....} },
        "financial": { "q1": { "jan 2017": { "child"... }, "feb 2017": {....} }, q2: {... }, q3: {... },....}
    },
    finished: { "discarded": {... } },
    .........
}
但是我期望的实际JSON数组

[{
    key: "doingnow": children: [{
        key: "action items", children: [{ key: "open", children: [] }, { key: "In Progress", children: [] }, { key: "Completed", children: [] }],
        key: "financial", children: [{ key: q1, children: [{ key: "jan 2017", children: [] }, { key: "feb 2017", children: [] }] },
        { key: q2, children: [{ key: "jan 2017", children: [] }, { key: "feb 2017", children: [] }] }]
    }],
}, { key: "finished", children: [{ ...}] }

有人能帮我吗?工作2天:-(

在这种情况下,递归可能是最佳选择

const data='{doingnow:…您的字符串…}'
const jsonObject=JSON.parse(数据)
const parseObject=(obj)=>{
让returnArray=[]
Object.keys(obj.forEach)(key=>{
让孩子们=[]
if(对象[键]==='object'&&obj[键]!==null的类型){
childrens=parseObject(obj[key])
}
push({key:key,childrens})
})
返回数组
}
const result=parseObject(jsonObject)

注意:这对大多数对象来说都很好,但是你可能需要对巨大的json对象进行更多的优化

你能告诉我们你尝试了什么,什么不起作用吗?所谓“无限”,你的意思是“任意”?嗨,非常感谢。我找到了解决方案。非常感谢。你节省了我的时间。:-)